MySQL查询在一个表而不在另一个表中的数据

1、使用not in,容易理解,效率低

select distinct A.ID from A where A.ID not in (select ID from B)

2、使用left join...on... ,B.ID isnull表示左连接之后在B.ID字段为null的记录

select A.ID from A left join B on A.ID=B.ID where B.ID is null

3、逻辑相对复杂,但是速度最快

select * from B where (select count(1) as num from A where A.ID = B.ID) = 0

你可能感兴趣的:(MySQL查询在一个表而不在另一个表中的数据)