我试图了解子查询的工作原理,但是当我尝试使用子查询时似乎不起作用。我尝试了,但它出现了错误。很确定我有正确的代码。任何指针我错误的地方都非常感激。
Heres是我正在研究的问题:
这是我的子查询:
SELECT OrderID, OrderDate, ShippedDate
FROM Orders
WHERE Country =
(SELECT Country
FROM Employees
WHERE Country = 'USA');
答案 0 :(得分:0)
当您加入EmployeeID或其他任何字段时,您正在加入国家/地区。 WHERE EmployeeID IN(SELECT EmployeeID ...
你拥有它的方式与美国和美国相匹配,这将给出不正确的结果,因为美国作为国家的任何两条记录都会加入。
答案 1 :(得分:0)
尝试
SELECT OrderID, OrderDate, ShippedDate
FROM Orders
WHERE EmployeeID IN
(SELECT EmployeeID
FROM Employees
WHERE Country = 'USA');
在这种情况下,您使用的是EmployeeID和IN。
子查询在美国查找EmployeeID列表。然后,它使用该列表从Orders表中选择美国Employees子集所做的订单。