让我们说我将employees
表加入departments
表的子查询。所以它可能看起来像这样(使用JOIN右侧的子查询):
SELECT *
FROM `employees` e
INNER JOIN (
SELECT ... FROM `departments`
WHERE ... GROUP BY ...
) AS d ON e.`department_id` = d.`department_id`
WHERE ....
或者......它可能看起来像这样(使用JOIN左侧的子查询):
SELECT *
FROM (
SELECT ... FROM `departments`
WHERE ... GROUP BY ...
) AS d
INNER JOIN `employees` e ON e.`department_id` = d.`department_id`
WHERE ....
它有什么不同吗?一个比另一个稍微有效吗?或者它们完全相同?