【发布时间】:2017-02-23 18:45:24
【问题描述】:
假设 Employee 和 Shippers 表有以下数据。
EmployeeID Name
1 Davolio
2 Fuller
3 Leverling
4 Peacock
5 Buchanan
6 Suyama
7 King
8 Callahan
9 Dodsworth
10 West
ShipperID ShipperName
1 Speedy Express
2 United Package
3 Federal Shipping
以下查询按降序返回 ShipperID。
select ShipperID from Shippers order by ShipperID desc;
现在,我想以与 ShipperID 检索相同的顺序从 Employee 表中检索 Names (3,2,1)。我的预期输出是Leverling, Fuller, Davolio。
select Name from Employee where EmployeeID in (select ShipperID from Shippers order by ShipperID desc)
上面的查询没有像我预期的那样返回数据。如何解决这个问题?
更新:
这与按升序或降序排列记录无关。这只是我在这里发布的一个例子。为了更清楚,假设子查询将 ShipperID 返回为2,3,1。现在我想从 Employee 表中检索记录,例如 Fuller, Leverling, Davolio
【问题讨论】:
-
我很惊讶查询甚至运行。为什么需要订购
in?您只想查看EmployeeID是否存在,顺序无关紧要。如果您希望对结果进行排序,则应订购外部查询