我正在尝试将三个单独的查询合并为一个。每个查询从不同的表中选择不同的列,但这些表确实有一些共同的列。
我尝试做的是 LEFT JOINing 两个表到另一个,只要最左边的表返回结果,这很好用。但是如果最左边的表没有返回结果,则根本没有返回任何结果(即使被 LEFT JOINed 的两个查询有结果)。
伪代码:
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)。但如果 tableA 没有结果,则查询返回 null。
当 LEFT JOIN 字符串中最左边的表没有结果时,有什么方法可以返回结果?