我正在将两个不同的表连接到我的原始表,但我想只在两个中的一个上进行内连接(取决于它是否包含匹配的键)。基本上,正在连接的两个表都不可能与原始表具有相同的记录。我最多需要一个。
像...一样的东西。
SELECT
t.Id,
t.column1,
t.column2,
a.column3 as ‘Column 3’,
b.column4 as ‘Column x’,
s.column5,
t.column6
FROM “Table1” t
INNER JOIN “Table2” a on a.Id = t.Id
INNER JOIN “Table3” b on b.Id = t.Id
如果该特定表中存在Id,则只应加入2或3中的一个。
答案 0 :(得分:1)
您可以使用left join
:
SELECT t.*,
a.column3 as Column3,
b.column4 as Columnx
FROM Table1 t LEFT JOIN
Table2 a
ON a.Id = t.Id LEFT JOIN
Table3 b
ON b.Id = t.Id;
这通常与coalesce()
:
SELECT t.*, coalesce(a.col1, b.col1) as col1
FROM Table1 t LEFT JOIN
Table2 a
ON a.Id = t.Id LEFT JOIN
Table3 b
ON b.Id = t.Id;