我有一个有趣的问题,我不知道如何处理它。
我有2个表,我需要使用标识符连接相同的数据,并添加左表或右表中缺少的数据。它似乎是FULL OUTER JOIN,但问题是我有2个键组合。
例如 T1_Identificator1 + T1_Identificator3 = T2_Identificator1 + T2_Identificator3 =相同记录 T1_Identificator2 + T1_Identificator3 = T2_Identificator2 + T2_Identificator3 =相同记录
我虽然在每张唱片上都有一些Subselect,但在我看来它太复杂了,并且还有相当大的性能损失
第二个想法,我刚才尝试的是EXCEPT和INTERSECT
你知道如何处理这个问题吗? 我准备了DB Schema http://sqlfiddle.com/#!6/5de09
谢谢
答案 0 :(得分:3)
使用您描述的条件做一个FULL JOIN
:
SELECT *
FROM T1
FULL OUTER JOIN T2
ON (T1_Identificator1 + T1_Identificator3 = T2_Identificator1 + T2_Identificator3 )
OR (T1_Identificator2 + T1_Identificator3 = T2_Identificator2 + T2_Identificator3)
检查SQL Fiddle Demo。它产生的输出与OP中引用的输出完全相同。