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 つのテーブルを別のテーブル、同じフィールドに入れたいのですが、問題は行が 2 つあることです。電話フィールドと名前フィールドが一意になるように、二重行の 1 つを削除したいと考えています。

出力は次のようにする必要があります。

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 に答える