5

我有两张桌子。

客户表

它有3个字段..

  1. 客户ID

客户地址表

它有2个字段

  1. 客户ID
  2. 地址

我的问题是我的客户表有 259 行,而我的客户地址表有 400 多行。我的意思是我的客户地址表包含重复的行。

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

谁能帮我?

谢谢

4

2 回答 2

11

如果每个副本的customer_idand都相同,您可以使用:addressDISTINCT

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;

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

于 2012-08-26T18:12:21.597 回答
0

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

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

于 2012-08-26T18:12:12.973 回答