[英]SQL: Join two tables on multiple columns
我试图左连接两个表(表 1 左连接表 2)。
我希望表格在多列上连接。 附图显示了结构。 表 1 中带有“Agency = 'External Agency 1'”的所有条目都应与表 2 中的相应条目连接起来。 所有其他人都应该与表 2 中的条目连接起来,其中“Agency = ''”。
Join 的第一部分很简单,但我不知道如何让所有在“Agency”字段上没有直接匹配的条目与空条目匹配。
任何提示将不胜感激!
你应该尝试做这样的事情:
select .... from Table1 left join Table2 on ( Table1.Column1 = Table2.Column1 and Table1.Colimn2 = Table2.Column2 and ...
) 这假设您在两个表中具有相同的列名
我认为它应该与:
FROM
table1 t1
LEFT OUTER JOIN table2 t2
ON t1.agency = 'External Agency 1' AND t2.agency = 'External Agency 1'
OR t1.agency <> 'External Agency 1' AND t2.agency = ''
使用两个左连接:
select t1.*,
coalesce(t2.col, t2d.col) as col
from table1 t1 left join
table2 t2
on t1.agency = t2.agency left join
table2 t2d
on t2.agency is null;
当值相同时,第一个join
是做什么的。 第二个引入了默认值。 当第一个join
没有匹配时使用默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.