JOIN操作(すべての種類のJOIN操作、LEFT、RIGHT、INNER、OUTER)には、結合されたテーブルから組み立てられた新しい仮想テーブルを作成する目的があることを覚えておくのが賢明です。
このJOINされた仮想テーブルには何が含まれているはずですか?あなたの場合、あなたの列A.IDとあなたの列B.AIDの意味は何ですか?
- AテーブルにA.ID列の値がB.AIDで何度も発生しない行がありますか?
- A.IDで何度も発生しないB.AID列値を持つ行がBテーブルにありますか?
質問1の答えが「はい」で質問2が「いいえ」の場合、LEFTJOINはあなたが望むものを提供します。ただし、クエリを単純化してください。これを試して。
SELECT A.*, B.*
FROM A
LEFT JOIN B ON A.ID = B.AID
Bからの対応する行がない、Aからの行のみが必要な場合は、これを試してください。
SELECT A.*
FROM A
LEFT JOIN B ON A.ID = B.AID
WHERE B.AID IS NULL
両方の質問に対する答えが「はい」の場合は、次のようにすることができます。
SELECT A.*, B.*
FROM A
OUTER JOIN B ON A.ID = B.AID
しかし、これは非常に慎重に検討する必要があります。