我有两个表,一个表有一个视频列表,一个有一个必须来自第一个表的视频列表,我需要从第一个表中选择第二个表中没有的行。
Heres table videos
:
VIDEOID | videoname
1 nameone
2 nametwo
3 namethree
继承人favs
:
VIDEOID | videoname
2 nametwo
在select查询之后,输出应为:
VIDEOID | videoname
1 nameone
3 namethree
可以看出,视频2
已被省略,因为它已在表favs
中
我已经尝试了一些单独的SQL查询,但是我一直遇到语法错误,我从来没有做过选择数据的SQL查询但是由于另一个表而发出了一些,应该怎么做呢?
答案 0 :(得分:5)
这里的朋友是LEFT JOIN
SELECT videos.*
FROM videos
LEFT JOIN favs ON videos.videoid=favs.videoid
WHERE favs.videoid IS NULL
答案 1 :(得分:2)
SELECT ...
FROM videos
WHERE VIDEOID NOT IN (
SELECT VIDEOID
FROM favs
);
答案 2 :(得分:1)
select *
from videos
where videoid not in (select videoid from favs)