MySQL で比較的単純なクエリを作成し、JOIN
名前と姓が一致した場所に基づいて 3 つのテーブルを作成しました。そこから、一致しなかったレコードのみを表示する別のクエリを書きたかったのですが、そのJOIN
方法がわかりませんでした。元のクエリのようなものを含むサブクエリを使用することに関係しているNOT IN
と思いますが、必要な結果を得ることができませんでした。
これは、部分的に適切に機能することを考え出そうとした回避策です。
SELECT *,
if(t2.first=t1.first AND t2.last=t1.last, "Match", "No Match") AS "t2 Match",
if(t3.first=t1.first AND t3.last=t1.last, "Match", "No Match") AS "t3 Match"
FROM t1
LEFT JOIN t2 ON t2.first=t1.first AND t2.last=t1.last
LEFT JOIN t3 ON t3.first=t1.first AND t3.last=t1.last
WHERE if(t2.first=t1.first AND t2.last=t1.last, "Match", "No Match")="No Match"
OR if(t3.first=t1.first AND t3.last=t1.last, "Match", "No Match")="No Match";
これはかなり単純で簡単なことだと思いますが、正しい結果が得られません。誰でも助けることができますか?
ありがとう!