查詢乙個表中存在而另乙個表中不存在的記錄

2021-06-02 10:41:56 字數 459 閱讀 8395

例如:兩個表:t1, t2 ,查詢在表t1中存在,而在表t2中不存在的記錄。

假設以id欄位為關聯字段。

方法1:需要兩個表的字段完全一致

select * 

from t1

minus 

selecct * from t2

方法2:

select * from t1

where not exists(select 1 from t2 where t1.id=t2.id)

方法3:

select * from t1

where id not in(select id from t2)

方法4:需要t2.id不能為空

select t1.*

from t1

left join t2 on t1.id=t2.id

where t2.id is null

MYSQL查詢 存在乙個表而不在另乙個表中的資料

a b兩表,找出id欄位中,存在a表,但是不存在b表的資料。a表總共13w資料,去重後大約3w條資料,b表有2w條資料,且b表的id欄位有索引。使用 not in 容易理解,效率低 執行時間為 1.395秒...

MYSQL查詢 存在乙個表而不在另乙個表中的資料

a b兩表,找出id欄位中,存在a表,但是不存在b表的資料。a表總共13w資料,去重後大約3w條資料,b表有2w條資料,且b表的id欄位有索引。使用 not in 容易理解,效率低 執行時間為 1.395秒 select distinct a.id from a where a.id not in ...

MYSQL查詢 存在乙個表而不在另乙個表中的資料

a b兩表,找出id欄位中,存在a表,但是不存在b表的資料。a表總共13w資料,去重後大約3w條資料,b表有2w條資料,且b表的id欄位有索引。使用 not in 容易理解,效率低 執行時間為 1.395秒 1 select distinct a.id from a where a.id not i...