(SQL)创建不相关的查询

时间:2016-06-23 17:32:02

标签: sql

我必须为给定的数据库编写一个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\%');

现在我必须让那个不相关,但我不知道如何。如果没有给定的表格,可以帮助我吗?

1 个答案:

答案 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%');

现在这是不相关的。