Mysql 尝试使用DISTINCT但不使用它并不能消除重复项
我试图从下面的查询中获得不同的shipAddress1。但它给我返回了shipAddress1和副本。我做错了什么Mysql 尝试使用DISTINCT但不使用它并不能消除重复项,mysql,Mysql,我试图从下面的查询中获得不同的shipAddress1。但它给我返回了shipAddress1和副本。我做错了什么 SELECT DISTINCT Orders.ShipAddress1, Orders.ShipAddress2, Orders.ShipCity, Orders.ShipState, Orders.ShipPostalCode, Customers.CustomerID, Customers.EmailAddress, Orders.OrderDa
SELECT DISTINCT
Orders.ShipAddress1,
Orders.ShipAddress2,
Orders.ShipCity,
Orders.ShipState,
Orders.ShipPostalCode,
Customers.CustomerID,
Customers.EmailAddress,
Orders.OrderDate
FROM
Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID
WHERE Orders.OrderDate > '04/10/2014 00:00:00' AND
GROUP BY
Customers.CustomerID,
Orders.ShipAddress1,
Customers.EmailAddress,
Orders.ShipAddress2,
Orders.ShipCity,
Orders.ShipState,
Orders.ShipPostalCode,
Orders.OrderDate
问题是distinct将返回所有这些值的不同集合。如果shipAddress1相同,但其他列不同,则将获得两组数据。如果希望shipAddress1的值都是不同的,则需要将查询更改为不包含所有这些不同的选项。将
GROUP BY
与distinct
组合可能不好。。。选择一个或另一个。所有大写刻痕在第一点上看起来都不太好,我建议简单地成为“女王”。是的,你是对的,这就是为什么它会返回我所有的值,但如果你能帮助我对我的查询做些什么更改?我对sql还不熟悉,但我被它困住了。问题是不清楚你想要什么。由于有多个条目具有相同的shipAddress1,您想要哪一个?我可以帮助您重新编写查询,但您必须知道您实际需要shipAddress1的哪些结果。我需要Orders.shipAddress1、Orders.ShipCity、Orders.ShipState、Orders.ShipPostalCode、Customers.CustomerID、Customers.EmailAddress、,Orders.OrderDate在我的最终查询和shipaddress1中应该有所有不同的地址您所要求的根本没有意义。如果有多个条目具有不同的值,那么我要问的是如何选择哪个条目。我可以清楚地看到您想要什么列,但假设有两个不同的实体,每个实体的shipAddress1为“7 Wallabe Lane”,但其他值完全不同。如何选择要拾取的条目?是什么人点的?你想要最近的吗?按字母顺序排列第一个电子邮件地址的那个?为了优化查询,您需要做出决定。