Sql 不确定我的内部联接是否有效

Sql 不确定我的内部联接是否有效,sql,join,inner-join,Sql,Join,Inner Join,我想有一个更简单的方法来做这个查询?这家伙有什么意见吗?看起来内部连接正在做你需要的事情。 我唯一想改变的是,我会把它改成 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 'Tot

我想有一个更简单的方法来做这个查询?这家伙有什么意见吗?

看起来内部连接正在做你需要的事情。 我唯一想改变的是,我会把它改成

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;

谢谢你

如果你需要加入,你需要加入。没有比编写联接更有效的方法了


如果您关心效率,请确保查询可以使用索引。例如,在您要加入的列上,或者在
WHERE
ORDER BY
子句中的列上。

如果您是在主键上加入,应该不会太糟糕。但我不是数据库专家
WHERE e.Country IN ('USA', 'France', 'Germany', 'Brazil')