クエリには4つのテーブルがあります
テーブルaにはa_id 、a_nameが含まれます
テーブルa_tlにはa_tl_id、a_id、language_id、a_disp_name
が含まれますテーブルbにはb_id 、a_id、b_name
が含まれますテーブルb_tlにはb_tl_id、b_id、language_id、b_disp_name が含まれます
aとa_tlで左外部結合、bとb_tlで左外部結合
、結果のテーブルで内部結合を実行したい。次のクエリを作成しました。
SELECT case a.a_disp_name
WHEN null THEN a.a_name
else a.a_disp_name
end AS a_name ,
case b.b_disp_name
WHEN null THEN b.b_name
else b.b_disp_name
end AS b_name ,
a_id ,
b_id
FROM a ,
a_tl ,
b ,
b_tl
WHERE a.a_id = a_tl.a_id (+)
AND b.b_id = b_tl.b_id (+)
AND a_tl.language_id = 2
AND b_tl.language_id = 2
AND a.a_id= b.b_id
このクエリは、language_idがデータベースに存在する場合に機能します。特定の値が存在しない場合、それは機能しません。つまり、左外部結合が機能しません。