我正在阅读解释嵌套循环连接算法的文章,但我并不完全了解嵌套选择的实际工作原理。下面是文章提供的一个例子:
这些示例搜索姓氏以“WIN”开头的员工,并获取这些员工的所有 SALES。
代表嵌套循环连接的查询如下:
select employees0_.subsidiary_id as subsidiary1_0_
-- MORE COLUMNS
from employees employees0_
where upper(employees0_.last_name) like ?;
select sales0_.subsidiary_id as subsidiary4_0_1_
-- MORE COLUMNS
from sales sales0_
where sales0_.subsidiary_id=?
and sales0_.employee_id=?;
select sales0_.subsidiary_id as subsidiary4_0_1_
-- MORE COLUMNS
from sales sales0_
where sales0_.subsidiary_id=?
and sales0_.employee_id=?;
如您所见,最后两个查询完全相同。这就是我所困惑的。为什么只生成前两个查询还不够?为什么我们必须生成第三个?