我有两张桌子。
它有3个字段..
它有2个字段
我的问题是我的客户表有259行,其中我的客户地址表有400多行。 我的意思是我的客户地址表包含重复的行。
现在我想从我的客户地址表中只选择唯一的行...
任何人都可以帮助我吗?
谢谢
答案 0 :(得分:9)
如果每个副本的customer_id
和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;
这将仅返回customer_addresses
表中具有重复条目(即 - 计数> 1)的客户 - 这可以帮助您解决重复问题。
答案 1 :(得分:0)
将DISTINCT
关键字添加到SQL语句中。