SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
Q :ここで何が起こっているのですか?
A :概念的には、table1
からすべての行を選択します 各行について、table2
で行を見つけようとします name
の値は同じです 桁。そのような行がない場合は、table2
をそのままにします。 その行の結果の一部は空です。次に、一致する行が存在しない結果の行のみを選択することにより、選択を制限します。最後に、name
を除くすべてのフィールドを結果から無視します 列(table1
から存在すると確信しているもの 。
すべての場合に可能な限り最もパフォーマンスの高い方法ではないかもしれませんが、ANSI92SQLを実装しようとする基本的にすべてのデータベースエンジンで機能するはずです