存在乙個表而不在另乙個表的資料

2021-06-28 16:29:57 字數 474 閱讀 4464

方法一(僅適用單個字段)

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

select a.id from a where a.id not in (select id from b)

方法二(適用多個字段匹配)

使用 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

方法三(適用多個字段匹配)(速度最快)

select * from b where (select count(1) as num from a where a.id = b.id) = 0

方法四(適用多個字段匹配)

select * from a where not exists(select 1 from b where a.id=b.id)

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...