我必须为给定的数据库编写一个SQL查询(它很大,我不能在这里发布,但是关于艺术家的专辑和发行日期,类型等)
任务是找到所有参与专辑的艺术家,其中包含单词" drop"。我不得不写一个相关和不相关的查询。我得到了相关性:
SELECT artist
FROM CDDB.ARTISTS ar
WHERE EXISTS
(SELECT album
FROM CDDB.ALBUMS al
INNER JOIN CDDB.ARTIST2ALBUM aa ON al.albumid = aa.albumid
WHERE ar.artistid = aa.artistid
AND album LIKE '\%drop\%');
现在我必须让那个不相关,但我不知道如何。如果没有给定的表格,可以帮助我吗?
答案 0 :(得分:0)
不相关的子查询是可以独立于外部查询运行的子查询。
一般来说,EXISTS
是相关的,IN
是不相关的。
如果您将查询更改为:
SELECT artist
FROM CDDB.ARTISTS ar
INNER JOIN CDDB.ARTIST2ALBUM aa ON ar.artistid = aa.artistid
WHERE album in
(SELECT album
FROM CDDB.ALBUMS
WHERE album LIKE '%drop%');
现在这是不相关的。