我有两张桌子。
客户表
它有3个字段..
- 客户ID
- 名
- 姓
客户地址表
它有2个字段
- 客户ID
- 地址
我的问题是我的客户表有 259 行,而我的客户地址表有 400 多行。我的意思是我的客户地址表包含重复的行。
现在我想从我的客户地址表中只选择唯一的行......
谁能帮我?
谢谢
我有两张桌子。
它有3个字段..
它有2个字段
我的问题是我的客户表有 259 行,而我的客户地址表有 400 多行。我的意思是我的客户地址表包含重复的行。
现在我想从我的客户地址表中只选择唯一的行......
谁能帮我?
谢谢
如果每个副本的customer_id
and都相同,您可以使用:address
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;
这将仅返回在表中具有重复条目(即计数> 1)的客户customer_addresses
- 这可能会帮助您解决重复问题。
将DISTINCT
关键字添加到您的 SQL 语句中。