SQL:在多个列上联接两个表

时间:2019-12-08 19:58:24

标签: sql

我试图左连接两个表(表1左连接表2)。

我希望这些表在多个列上联接。所附图片显示了结构。表1中所有带有“机构='外部机构1'”的条目应与表2中的相应条目合并。其他所有条目应与表2中“ Agency =””的条目合并。

加入的第一部分很容易,但是我不知道如何使“代理”字段中没有直接匹配的所有条目与空条目匹配。

enter image description here

任何提示将不胜感激!

3 个答案:

答案 0 :(得分:0)

您应该尝试执行以下操作:

选择....从表1左加入表2 ( Table1.Column1 = Table2.Column1和 Table1.Colimn2 = Table2.Column2和 ...

) 假设两个表中的列名相同

答案 1 :(得分:0)

我认为它应该与:

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 = ''

答案 2 :(得分:0)

使用两个左联接:

console.log(await AsyncStorage.getItem('token'));

当值相同时,第一个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不匹配时使用默认值。