列 SOME_ID を持つテーブル SOME_TABLE があります。列 SOME_TABLE_SOME_ID (FOREIGN KEY)、TYPE、CONTENT を持つテーブル ANOTHER_TABLE もあります
SOME_TABLE の 1 つのレコードに対して、ANOTHER_TABLE に 1 つまたは 2 つのレコードがあります。
以下のように表示したいと思います。
SOME_ID, CONTENT_TYPE_A, CONTENT_TYPE_B
私はSQL文を持っています:
SELECT
ST.SOME_ID,
TYPE_A.CONTENT CONTENT_TYPE_A,
TYPE_B.CONTENT CONTENT_TYPE_B
FROM SOME_TABLE ST
LEFT OUTER JOIN ANOTHER_TABLE TYPE_A
ON ST.SOME_ID=TYPE_A.SOME_TABLE_SOME_ID
LEFT OUTER JOIN ANOTHER_TABLE TYPE_B
ON ST.SOME_ID=TYPE_B.SOME_TABLE_SOME_ID
WHERE
TYPE_A.TYPE = 'A'
AND
TYPE_B.TYPE = 'B'
このクエリは、ANOTHER_TABLE に両方のレコードが存在する場合 (TYPE='A' および TYPE='B')、SOME_TABLE の結果のみを返します。
対応する SOME_TABLE レコードが ANOTHER_TABLE に 1 つのレコードしか存在しない場合にビューを取得するにはどうすればよいですか?
現在レコードがある場合、CONTENT_TYPE_A または CONTENT_TYPE_B に null 値を設定したいと考えています。