我有以下两个表:
表1(A,B,C,d) 表2(A,B,C,d)
我的要求是合并两个表;如果在两个表中都有列a和b的组合(只有a和b列的组合,即a和b的值相同),请保留第一个表中的行。
我希望我很清楚。请提出建议。
注意:两个表都没有主键。
谢谢,
更新
左连接's1.a = s2.a AND s1.b = s2.b'给我重复的行,而不是从第二个表中选择值a列和b值不相同的值。例如,如果我在table1中有2行:
11,22,33,44 - 11,55,33,44
和table2中的2行为:
11,22,33,44 - 66,77,44,88
输出为4行:
11,22,33,44 - 11,22,33,44 - 11,55,33,44 - 11,55,33,44
更新
但输出应为:
11,22,33,44 - 11,55,33,44 - 66,77,44,88
我需要UNION + JOIN + GROUP BY组合,但无法提出正确的组合/查询。
答案 0 :(得分:0)
SELECT s1.* FROM
(SELECT a,b,c,d FROM table1) s1
LEFT JOIN
(SELECT a,b,c,d FROM table2) s2
ON s1.a = s2.a AND s1.b = s2.b
更新:
SELECT a,b,c,d FROM table1 GROUP BY a,b,c,d
UNION
SELECT a,b,c,d FROM table2 GROUP BY a,b,c,d