我有两张桌子:GENRE和MOVIE。 GENRE包含genre_code和genre_desc,而MOVIE有tile,genre_code等...我试图列出所有与标题无关的genre_desc。我需要使用NOT IN并避免使用EXISTS。
我试过了 -
SELECT GENRE.MOVIE_GENRE_DESC
FROM GENRE INNER JOIN MOVIE ON MOVIE.MOVIE_GENRE_CODE = MOVIE.GENRE_CODE
WHERE GENRE.MOVIE_GENRE_DESC Not In ([MOVIE].[GENRE_CODE]);
我只是获得了一个包含标题的desc列表
答案 0 :(得分:1)
您可以将此SQL与LEFT JOIN
:
SELECT Genre.genre_code, Genre.genre_desc
FROM Genre LEFT JOIN Movie ON Genre.genre_code = Movie.genre_code
WHERE Movie.id Is Null
或NOT IN
:
SELECT Genre.genre_code, Genre.genre_desc
FROM Genre
WHERE Genre.genre_code not in (SELECT Movie.genre_code FROM Movie )
第一个变体应该更快,NOT IN
表示不使用索引。