如何显示未录制任何标题的所有艺术家的姓名?如果我首先运行以下查询:
SELECT * FROM Titles WHERE ArtistID is null;
它产生一个空集。
有问题的表格如下:
ArtistID,ArtistName,City,Region,Country,EntryDate
TitleID,ArtistID,Title,StudioID,UPC,类型,
艺术家或标题没有空记录,例如,每条记录都有一些数据。由于上面的查询产生一个空集,这是否意味着所有艺术家都有录制的标题?
答案 0 :(得分:2)
我认为您正在寻找以下内容:
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
答案 1 :(得分:0)
尝试这样的事情:
SELECT *
FROM Artists
WHERE artistID NOT IN (
SELECT artistID
FROM Titles
);
答案 2 :(得分:0)
由于上面的查询产生一个空集,这是否意味着所有 艺术家有唱片吗?
不,这意味着所有图书都有相关的艺术家。
要获得没有任何头衔的艺术家,您必须执行以下操作:
SELECT Artist.*
FROM Artist
WHERE ArtistId NOT IN (SELECT DISTINCT ArtistId FROM Titles)
答案 3 :(得分:0)
SELECT Artists.*
FROM Artists
WHERE Artists.ArtistID NOT IN (SELECT Titles.ArtistID FROM Titles)
这应该有效。它可以用其他方式编写,但这应该足够了。