0

这是我到目前为止所拥有的:

在此处输入图像描述

//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"吗?

这是正确的语法吗?只是想仔细检查一下。

4

1 回答 1

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 表进行另一个联接。再给你一个线索,考虑一下这个问题,我如何查看某个特定艺术家发行的所有 Cd?如果您想查看特定艺术家的所有歌曲,这很简单:

SELECT * FROM Song WHERE artist = 'Yoko Ono'

CD呢?你可以这样做:

SELECT * FROM Cd, Song WHERE Song.CdTitle = Cd.Title

您的最终查询将需要从所有三个表中进行选择,并且您需要所有约束都到位。

于 2013-05-06T15:04:11.447 回答