显示来自 table1 和其他来自 table 1 的匹配 ID 数据

Show matching id data from table1 and others from table 1

我有这些 table:

如果来自 table2 的引用 ID 存在于 table1

中,我想显示来自 table2 的数据

table1

id   name   referenceid   salary  taxamount
-------------------------------------------
 1   abs1       12         80k      1k
 2   abs2       18         90k      2k

table2

id   name   referenceid   salary  taxamount
-------------------------------------------
 1   abs3      12          90k       2k
 2   abs4      13          90k       3k
 3   abs5      14          90k       4k

如果参考 ID 在 table 中匹配 1 然后显示来自 table 的薪水和姓名 1 否则显示来自 table1

的所有数据

期望的输出:

id   name   referenceid   salary   taxamount
--------------------------------------------
 1   abs1      12          80k        2k
 2   abs4      13          90k        3k
 3   abs5      14          90k        4k

我试过:

select * 
from table1 t1 
left join table2 t2 on t1.referenceid = t2.referenceid

但显示不匹配的数据为空;我想要来自 table 1 的两列数据和来自 table 2 的其他数据。基本上我们使用 table 1 作为更新的 table 如果数据已更新,那么我们存储引用 ID在 table 1

看来你只需要使用 isnull:

select t2.id,
  isnull(t1.name, t2.name) name, 
  t2.referenceid, 
  isnull(t1.salary, t2.salary) salary
from table2 t2
left join table1 t1 on t1.referenceid = t2.referenceid;