如何在T-SQL中将2个表合并为1个表?我尝试与完全外部联接合并,这有助于联接2个表,但与“客户帐户”联接2次。我只需要表A和表B中的所有列以及一个“客户帐户字段”,而表A和表B.ields中的其余所有列。
这是我的示例的详细信息:
表A -我的第一个表有5列:
表B -我的第二个表有6列:
我期望这样的输出:
输出表A和表B中的所有字段,但仅公共字段一次:
非常感谢。
答案 0 :(得分:1)
将t1和t2中的必填(全部)列添加到select语句
SELECT COALESCE(t1.customeraccount, t2.customeraccount) as customeraccount,
t1.BasicCardType,
t2.MonthlySet
FROM table1 t1
FULL JOIN table2 t2 ON t1.customeraccount = t2.customeraccount;
答案 1 :(得分:0)
(根据注释进行编辑):在CustomerAccount ID字段上加入表(为您提供两个表中都存在的条目),然后为仅存在于表A中的所有条目添加一个并集,然后为以下条目添加一个并集:仅存在于表B中。原则上:
-- get entries that exist in both tables
select Table_A.CustomerAccount, TableAField1, TableAField2, TableBField1, TableBField2
from Table_A
join Table_B on Table_A.CustomerAccount = Table_B.CustomerAccount
-- get entries that only exist in table_a
union select Table_A.CustomerAccount, TableAField1, TableAField2, null, null
from Table_A
where Table_A.CustomerAccount not in (select CustomerAccount from Table_B)
-- get entries that only exist in table_B
union select Table_B.CustomerAccount, null, null, TableBField1, TableBField2
from Table_B
where Table_B.CustomerAccount not in (select CustomerAccount from Table_A)