【发布时间】:2014-10-08 09:33:28
【问题描述】:
我有一个关于从 SQL 中使用 JOINS 的问题:
两者有什么区别:
Select * From Employees E
JOIN Products P ON E.idEmployee = P.idEmployee
JOIN ProductsDetails PD ON P.idProduct = PD.idProduct
与
Select * From Employees E
JOIN Products P ON P.idEmployee = E.idEmployee
JOIN ProductsDetails PD ON PD.idProduct = P.idProduct
还有,有什么区别:
Select * From Employees E
JOIN Products P ON E.idemployee =P.idemployee
Where P.name like '%prod01%'
与
Select * From Employees E
JOIN Products P ON E.idemployee =P.idemployee
Where E.ProdName like '%prod01%' //considering the fact that the field ProdName also exists in the table Products.
实际上,查询实际上是如何工作的,我的意思是工作流程:
Select * From Employees E
JOIN Products P ON E.idemployee = P.idEmployee
JOIN ProductsDetails PD ON P.idProduct = PD.idProduct
JOIN OtherTable OT ON E.idField = OT.idField
where E.ProductNumber = 1 and OT.idOfAnotherField = value
Join 子句上的 where 条件如何影响主查询,查询实际如何工作,它首先带来什么以及如何应用条件?
【问题讨论】:
-
所有这些问题都已在 stackoverflow 上得到解答。请先搜索。例如:stackoverflow.com/questions/16360860/… 通常,这取决于您使用的 rdbms(例如 MS SQL-Server 或 Oracle)。优化器可以更改顺序。
-
我想知道
ProdName在Employees表中做了什么。 -
这只是一个基于真实查询的示例
标签: sql