0
我是 SQL 新手,我当前的 sql 查询是:-

SELECT
    CONCAT(LastName,', ',FirstName)AS 'Name',</li>
    City,
    Country,
    ShipCity AS 'Shipped City'
From 
    itstudies.employees
INNER JOIN
    Orders
ON Employees.EmployeeID = Orders.EmployeeID
WHERE City = ShipCity;
此查询将输出显示为:-

(仅显示部分输出。)

Name            City     Country     Shipped City
Smith, Jo       York       UK            York
Avery, Paul     Dallas     USA           Dallas
Avery, Paul     Dallas     USA           Dallas 
Kris, Jan       York       UK            York
Kris, Jan       York       UK            York
Hill, Ros       Boston     USA           Boston
我需要取出重复项并更改查询以显示:-

Name            City     Country     Shipped City
Smith, Jo       York       UK            York
Avery, Paul     Dallas     USA           Dallas
Kris, Jan       York       UK            York
Hill, Ros       Boston     USA           Boston
提前致谢。

4

2 回答 2

2

你可以使用

SELECT DISTINCT ...

但通常最好查看重复项的来源并使用

GROUP BY

在这种情况下,您使用 ORDERS 加入,从而获得员工所有订单的副本。这个加盟有必要吗?你可以使用

WHERE EXISTS (SELECT 1 FROM Orders WHERE Orders.EmployeeId=Employees.EmployeeId)

只获得订购的员工。

于 2013-08-23T08:15:49.827 回答
0

很简单:使用 DISTINCT 关键字。

您可以参考http://www.w3schools.com/sql/sql_distinct.asp了解更多详情;)

于 2013-08-23T08:17:53.483 回答