本文推荐三种方法,第三种为最高效

1.使用not in 结合 distinct

SELECT DISTINCT a.id FROM a WHERE a.id NOT in(SELECT id FROM b)

2.使用left join做关联查询且条件为关联表的id is null

SELECT * from a LEFT JOIN b ON a.id = b.id WHERE b.id IS NULL

3.充分利用count函数,若子查询的结果不为0,则表明该Id存在1条或多条,不会查询出此条记录,最高效!

select * from b where (select count(1) from a where a.ID = b.ID) = 0
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐