You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:查询table1中未出现在table2的5条数据的SQL语句

查询table1中比table2多出的记录

你的SQL问题所在

你写的SQL逻辑完全搞反了:

  • 目标是找table1里多出来的记录,你却从table2里查数据
  • 子查询里的JOIN会把匹配的记录都筛出来,导致NOT EXISTS的判断根本起不到作用

正确的查询语句

下面几种方法都能帮你拿到table1中存在、但table2里没有对应email的记录:

方法一:用NOT EXISTS(兼容性最好)

SELECT * FROM table1 t1
WHERE NOT EXISTS (
    SELECT 1 FROM table2 t2
    WHERE t2.email = t1.email
);

方法二:用LEFT JOIN + IS NULL

SELECT t1.* FROM table1 t1
LEFT JOIN table2 t2 ON t1.email = t2.email
WHERE t2.email IS NULL;

方法三:用EXCEPT(仅支持PostgreSQL、SQL Server等数据库)

SELECT email FROM table1
EXCEPT
SELECT email FROM table2;

如果只是想确认多出的记录数量,把SELECT *换成SELECT COUNT(*)即可。

内容的提问来源于stack exchange,提问作者Abhishek Chatterjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:14:51