5

2つのテーブルがあります。

顧客テーブル

3つのフィールドがあります。

  1. 顧客ID
  2. ファーストネーム
  3. 苗字

顧客アドレステーブル

2つのフィールドがあります

  1. 顧客ID
  2. 住所

私の問題は、顧客テーブルに259行あるのに対し、顧客アドレステーブルには400行以上あることです。つまり、顧客の住所テーブルに重複する行が含まれています。

ここで、顧客の住所テーブルから一意の行のみを選択したいと思います...

誰か助けてもらえますか?

ありがとう

4

2 に答える 2

11

customer_idとが各複製で同じである場合addressは、次を使用できますDISTINCT

SELECT DISTINCT(`customer_id`), `address` FROM `customer_addresses`;

顧客がテーブルに2つの異なるアドレスを持っている場合、上記のクエリで2つの結果を受け取ります。顧客ごとに単一の結果を取得するには、次を使用できますGROUP BY

SELECT `customer_id`, `address` FROM `customer_addresses` GROUP BY `customer_id`;

これにより、顧客ごとに1つの結果が返されることが保証されます。

の使用に基づいて構築するために、これを使用して、重複するエントリを持つ顧客を見つけるGROUP BYこともできます。

SELECT `customer_id` FROM `customer_addresses` GROUP BY `customer_id` HAVING COUNT(*) > 1;

これにより、テーブルに重複するエントリ(つまり、カウントが1より大きい)を持つ顧客のみが返されますcustomer_addresses。これは、重複する問題の解決に役立つ場合があります。

于 2012-08-26T18:12:21.597 に答える
0

DISTINCTSQLステートメントにキーワードを追加します。

参照: http ://www.techonthenet.com/sql/distinct.php

于 2012-08-26T18:12:12.973 に答える