如何合并两个表保留第一个表中的行

时间:2013-05-08 11:05:39

标签: mysql join merge

我有以下两个表:

表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组合,但无法提出正确的组合/查询。

1 个答案:

答案 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