【发布时间】:2012-09-12 09:55:01
【问题描述】:
当我在 MySQL 中运行以下查询时,我得到了很多重复项。我知道我已经足够清楚了,我只需要不同的记录,所以我不明白为什么它会为我加倍。当我包含最后一个联合(importorders 表)时,似乎所有重复项都会出现,因为大多数客户在客户和订单中都有相同的地址。谁能帮我理解为什么会这样?
SELECT DISTINCT PostalCode, City, Region, Country
FROM
(select distinct postalcode, city, region, country
from importemployees
UNION
select distinct postalcode, city, region, country
from importcustomers
UNION
select distinct postalcode, city, region, country
from importproducts
UNION
select distinct shippostalcode as postalcode, shipcity as city, shipregion as region, shipcountry as country
from importorders) T
如您所见。有些行是重复的。
如果我先使用INSERT IGNORE 插入importcustomers,然后插入importorders,那么它会设法将记录识别为重复记录。为什么选择查询不起作用?
【问题讨论】:
-
重复是什么意思?列还是整行?
-
我的意思是重复的行。相同行中的值看起来相同。可以前。表中的不同字符集/排序规则(或从 csv 导入时)会触发这个?
-
我无法重现这个。你能为此发布一个直播sql-fiddle吗?
-
更好。我从 MySQL 工作台得到了导出。我刚刚导入它并尝试了一些类似上面的查询。不知道错误在哪里,所以如果你可以使用它。学校分配,所以没有保密=)ge.tt/69lmmZN/v/0
标签: mysql