繁体   English   中英

从表中选择行,但排除另一个表中已经有ID的行

[英]Select row from table but exclude row that has ID already in another table

我有两个表,一个表有一个视频列表,一个表有一个必须来自表一的视频列表,我需要从第一张表中选择表二中不存在的行。

继承人表videos

VIDEOID    |    videoname
   1             nameone
   2             nametwo
   3             namethree

继承人表favs

VIDEOID    |    videoname
   2             nametwo

选择查询后,输出应为:

VIDEOID    |    videoname
   1              nameone
   3              namethree

可以看到,视频2已被省略,因为它已经在表格favs

我尝试了一些单独的SQL查询,但是我一直遇到语法错误,我从未做过选择数据但由于另一个表而发出数据的SQL查询,该怎么办?

您的朋友是左加入

SELECT videos.* 
FROM videos 
    LEFT JOIN favs ON videos.videoid=favs.videoid
WHERE favs.videoid IS NULL
SELECT ...
FROM videos
WHERE VIDEOID NOT IN (
   SELECT VIDEOID
   FROM favs
);
select *
from videos
where videoid not in (select videoid from favs)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM