2つのテーブルがあります。
顧客テーブル
3つのフィールドがあります。
- 顧客ID
- ファーストネーム
- 苗字
顧客アドレステーブル
2つのフィールドがあります
- 顧客ID
- 住所
私の問題は、顧客テーブルに259行あるのに対し、顧客アドレステーブルには400行以上あることです。つまり、顧客の住所テーブルに重複する行が含まれています。
ここで、顧客の住所テーブルから一意の行のみを選択したいと思います...
誰か助けてもらえますか?
ありがとう
2つのテーブルがあります。
3つのフィールドがあります。
2つのフィールドがあります
私の問題は、顧客テーブルに259行あるのに対し、顧客アドレステーブルには400行以上あることです。つまり、顧客の住所テーブルに重複する行が含まれています。
ここで、顧客の住所テーブルから一意の行のみを選択したいと思います...
誰か助けてもらえますか?
ありがとう
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
。これは、重複する問題の解決に役立つ場合があります。
DISTINCT
SQLステートメントにキーワードを追加します。