SELECT concat(e.FirstName, e.LastName), o.OrderID, o.OrderDate, p.ProductName, c.CategoryName, od.Quantity, od.UnitPrice, od.Discount, ((od.UnitPrice* od.Quantity)*(1-od.Discount)) AS 'Total Item Price', Country, Region, City
FROM Employees e
INNER JOIN Orders o
ON e.EmployeeID = o.EmployeeID
INNER JOIN [Order Details] od
ON o.OrderID = od.OrderID
INNER JOIN Products p
ON od.ProductID = p.ProductID
INNER JOIN Categories c
ON p.CategoryID = c.CategoryID
WHERE e.Country = 'USA' OR e.Country = 'France' OR e.Country = 'Germany' OR e.Country = 'Brazil'
ORDER BY OrderDate DESC, e.FirstName;
我认为有一种更简单的方法来执行此查询?关于这个人的任何意见?
答案 0 :(得分:2)
如果您需要加入,则需要加入。没有更有效的写连接方式。
如果您担心效率,请确保您的查询可以使用索引。例如,您要加入的列或您WHERE
或ORDER BY
子句中的列。
答案 1 :(得分:1)
看起来内连接正在做你需要的。 我唯一要改变的是在哪里,我会把它改为
WHERE e.Country IN ('USA', 'France', 'Germany', 'Brazil')
谢谢