这是我到目前为止所拥有的:
//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"
吗?
这是正确的语法吗?只是想仔细检查一下。
答案 0 :(得分:2)
要插入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其中cd.producername = producer.name和 cd.year = 1999
您需要的查询更复杂,您需要包括艺术家是Yoko Ono但艺术家不在Cd表中的事实,它在Song表中。这意味着您需要与Song表进行另一次连接。为了给你另一条线索,请考虑一个问题,我如何看到特定艺术家发布的所有Cds?如果你想看一个特定艺术家的所有歌曲,这很容易:
SELECT * FROM Song WHERE artist = 'Yoko Ono'
Cds怎么样?你可以这样做:
SELECT * FROM Cd, Song WHERE Song.CdTitle = Cd.Title
您的最终查询需要从所有三个表中进行选择,并且您需要具备所有约束。