3 つの個別のクエリを 1 つに結合しようとしています。各クエリは異なるテーブルから異なる列を選択しますが、テーブルには共通の列がいくつかあります。
私がやろうとしたのは、2 つのテーブルを別のテーブルに LEFT JOIN することでした。これは、一番左のテーブルが結果を返す限りうまく機能します。ただし、一番左のテーブルが結果を返さない場合は、結果はまったく返されません (LEFT JOIN された 2 つのクエリに結果がある場合でも)。
擬似コード:
SELECT a.col_1, b.col_2, c.col_3
FROM tableA a
LEFT JOIN tableB b ON b.someCol = a.someCol
LEFT JOIN tableC c ON c.someCol = a.someCOL
WHERE a.anotherCol = :someVal AND a.yetAnotherCol = :anotherVal
tableA に結果がある場合、クエリ結果は私が求めているものです (つまり、col_1、col_2|null、および col_3|null を持つ 3 つの列が返されます)。ただし、tableA に結果がない場合、クエリは null を返します。
LEFT JOIN の文字列の左端のテーブルに結果がない場合でも結果を返す方法はありますか?