繁体   English   中英

SQL:在多列上连接两个表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM