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を実装しようとする基本的にすべてのデータベースエンジンで機能するはずです