在Access中使用NOT IN

时间:2016-01-29 05:57:00

标签: sql ms-access

我有两张桌子: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列表

1 个答案:

答案 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表示不使用索引。