【发布时间】:2015-03-29 08:26:26
【问题描述】:
我正在尝试使用 MySQL 为图书馆数据库编写 SQL 查询。
有两个表shelf(studentnumber, booknumber) 和booklist(booknumber,booktitle,language)。书单表条目中有 4 种不同的语言,即italian, spanish, hungarian, german。
我想了解已阅读所选语言所有书籍的studentnumbers。
表格示例数据:
create table shelf(studentnumber INT, booknumber INT);
INSERT INTO shelf values(1,1),(1,2),(1,3),(2,1),(2,3)(2,4),(2,5),
(2,6),(3,6),(3,7)(3,8),(3,9);
create table booklist(booknumber INT, booktitle VARCHAR(50), language VARCHAR(10);
INSERT INTO booklist values(1, 'FirstBook', 'italian'),(2,'SecondBook', 'spanish'),
(3,'ThirdBook','italian'),(4,'FourthBook','german'),(5,'FifthBook','german'),
(6, 'SixthBook','spanish'),(7,'SeventhBook','hungarian'),(8,'EightBook','hungarian'),
(9,'NinthBook','hungarian'),(10,'TenthBook','Spanish'),(11,'EleventhBook', 'italian');
样本输出: 当您查看书架表和书目表时,您会看到学生编号 2 的学生阅读了所有德语书籍,而学生编号 3 的学生阅读了所有匈牙利语书籍。 但是没有一个学生读过所有意大利文或西班牙文的书。
代码的最后一部分如下所示,但我无法构造第一部分,可能会包含NOT EXISTS
SELECT booknumber FROM booklist WHERE language='italian';
【问题讨论】:
-
是的,考虑提供适当的 DDL 和/或 sqlfiddle 以及所需的结果集
-
好悲痛。编辑您的问题。
-
@tpanic 正确格式化您的问题。
-
正确的 DDL,谢谢 - 这样我们就可以复制问题。并删除上面的 cmets。字符串需要逗号
-
格式化完毕,够清楚了吗?