左外部結合
を使用できます
これを達成するには:
select
t1.tid
from
table1 t1
left outer join table2 t2 on
t1.tid = t2.tid
where
t2.tid is null
これは、最初のテーブル( table1
)を取得します。 )、2番目のテーブル( table2
)と結合します )、 null
を入力します table2
の場合 table1
の任意の行の列 table2
の行と一致しません 。次に、 table1
のみを選択して、それを除外します。 一致するものが見つからなかった行。
または、<を使用することもできます。コード>存在しませんコード> :
select
t1.tid
from
table1 t1
where
not exists (select 1 from table2 t2 where t2.tid = t1.tid)
これにより、左半結合
が実行されます 、基本的に左外部結合
と同じことを行います します。インデックスによっては、一方が他方よりも高速である場合がありますが、どちらも実行可能なオプションです。 MySQLには、結合の最適化に関する優れたドキュメントがいくつかあります。 a> 、だからあなたはそれをチェックする必要があります..