2

我的 MySQL 有问题。我有 2 个具有相同字段的表,我想选择这 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
4

2 回答 2

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)
于 2013-03-17T22:43:16.230 回答
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;

这是一个小提琴链接

于 2013-03-17T22:54:25.093 回答