使用客户ID过滤mysql中的重复行

时间:2012-08-26 18:09:41

标签: mysql

我有两张桌子。

客户表

它有3个字段..

  1. CUSTOMER_ID
  2. 如first_name
  3. 姓氏
  4. 客户地址表

    它有2个字段

    1. CUSTOMER_ID
    2. 地址
    3. 我的问题是我的客户表有259行,其中我的客户地址表有400多行。 我的意思是我的客户地址表包含重复的行。

      现在我想从我的客户地址表中只选择唯一的行...

      任何人都可以帮助我吗?

      谢谢

2 个答案:

答案 0 :(得分:9)

如果每个副本的customer_idaddress相同,您可以使用DISTINCT

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

如果客户在表格中有两个不同的地址,您将收到上述查询的两个结果。要为每位客户获得一个结果,您可以使用GROUP BY

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

这将保证每个客户返回一个结果。

为了使用GROUP BY,您还可以使用它来查找具有重复条目的客户:

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

这将仅返回customer_addresses表中具有重复条目(即 - 计数> 1)的客户 - 这可以帮助您解决重复问题。

答案 1 :(得分:0)

DISTINCT关键字添加到SQL语句中。

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