这是我到目前为止所知道的:

//Insert a CD supplied by a particular supplier and produced by a particular producer
Mysqli_query($con, "INSERT INTO CD WHERE suppliername = "Sony" AND producername = "Gold Records" (CD name, CD type, CD year)
VALUES ('CDname', 'CDtype', 'CDyear')");
//List producers information who produce CD of a particular artist released in a particular year
mysqli_query($con, "SELECT name from producers WHERE CD artist="Yoko Kano" AND year= "1999");或者我应该包括WHERE artist from song="Yoko Kano" AND year from song= "1999"?
这是正确的语法吗?我只想再检查一遍。
发布于 2013-05-06 23:04:11
要插入CD,您应该能够使用以下命令:
INSERT INTO cd (suppliername, producername, title, type, year)
VALUES ('Sony', 'Gold Records', 'My CD Title', 'My CD Type', 2008)我不会给你的第二个问题一个完整的答案,因为我假设这是家庭作业。不过,我会给你一些指导。
首先,如果你想要一个生产者列表,你需要这样做
SELECT * FROM producer但你并不想要所有的生产商,你只想要那些在1999年发行CD的生产商。你怎样才能得到这些CD的清单呢?使用另一个查询:
SELECT * FROM cd WHERE year = 1999那么如何将它们组合在一起呢?使用类似这样的东西:
SELECT * FROM producer,cd where cd.producername = producer.name
cd.year = 1999
您需要的查询更为复杂,您需要包括艺术家是小野洋子,但是艺术家不在Cd表中,而是在Song表中的事实。这意味着您需要与Song表进行另一个连接。为了给你另一个线索,考虑这个问题,我如何看到某个特定艺术家发行的所有Cds?如果你想看某位艺术家的所有歌曲,那很简单:
SELECT * FROM Song WHERE artist = 'Yoko Ono'那Cds呢?你可以这样做:
SELECT * FROM Cd, Song WHERE Song.CdTitle = Cd.Title您的最终查询将需要从所有三个表中进行选择,并且需要所有的约束都就位。
https://stackoverflow.com/questions/16401352
复制相似问题