如何显示所有未录制任何标题的艺术家的姓名?如果我首先运行以下查询:

SELECT * FROM Titles WHERE ArtistID is null;

它产生一个空集合。
所讨论的表格如下:
艺术家
艺名、艺名、城市、地区、国家、入境日期
标题
TitleID,ArtistID,Title,StudioID,UPC,流派,
没有艺术家或标题的空记录,例如,每个记录都有一些数据。由于上面的查询生成一个空集,这是否意味着所有艺术家都录制了标题?

最佳答案

我想你要找的是:

SELECT ArtistName FROM Artists WHERE NOT ArtistID IN (SELECT t.ArtistID FROM Titles t)

另一个选项,可能更快,但更难阅读:
SELECT ArtistName FROM Artists LEFT JOIN Titles ON Titles.ArtistID = Artists.ArtistID WHERE TitleID IS NULL

关于mysql - MySQL查询产生空集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19611034/

10-08 21:33