MySQL 2表到另一个表

时间:2013-03-17 22:23:55

标签: mysql sql join

我遇到了MySQL的问题。我有2个具有相同字段的表,我想选择这两个表并将其插入另一个表中。这不是问题,但问题是那里有一些重复的记录。

表1

+------+-------+-----------+
| Name | Email | telephone |
+------+-------+-----------+
|Harry |       | 902632354 |
| John | ha@as | 927301837 |
| Alan | ajh@i | 928371048 |
+------+-------+-----------+

表2

+------+-------+-----------+
| Name | Email | telephone |
+------+-------+-----------+
|Harry | a@jka | 902632354 |
| Ron  | hs@as | 123308837 |
| Alan |       | 928371048 |
+------+-------+-----------+

输出:

Harry
John
Ron
Alan

所以我想要的是一个独特的电话领域,名称字段就像一个独特的但问题不是每个电子邮件领域都是一样的,所以这就是问题,我希望有人可以帮助我。我很抱歉我的英语,这不是很好

编辑:

我想将2个表放到另一个表中,相同的字段但问题是我有双行。 我想删除其中一个双行,因此电话字段和名称字段是唯一的。

输出必须是:

Harry, John, Alan, Ron 

而不是:

Harry, John, Alan, Harry, Ron, Alan

2 个答案:

答案 0 :(得分:0)

试试这个:

    select name, MAX(email), phone FROM
    (
       Select name, email, phone FROM table1
       UNION
       Select name, email, phone FROM table2
    ) a
    GROUP BY name, phone
    HAVING email=MAX(email)

答案 1 :(得分:0)

以下内容可行:

SELECT name, MAX(email), phone
FROM (
  SELECT t1.`name`, t1.`email`, t1.`phone`
  FROM tbl1 t1
  UNION ALL 
  SELECT t2.`name`, t2.`email`, t2.`phone`
  FROM tbl2 t2
) u
GROUP BY name;

这里是fiddle link