在文章末尾已经写了ON和JOIN子句考虑之前的WHERE。
考虑到我们有一个拥有10 milion的主表和一个详细表(参考主表(FK)),具有50 milion的记录。我们有一个查询,根据主表中的PK只有100个记录细节表。
在这种情况下,ON和JOIN在WHERE之前执行?我的意思是说,我们在JOIN之后有500 milion的记录,然后在哪里应用?或者先是应用,然后JOIN和ON考虑?如果第二个答案是真的,它与顶部不一致文章?
谢谢
始终尊重逻辑处理订单:无论实际处理顺序如何
INNER JOINS和WHERE条件是有效的关联和交换(因此ANSI-89“加入在哪里”语法),所以实际的顺序并不重要
外部联接和更复杂的查询的逻辑顺序变得很重要:在OUTER表上应用WHERE会彻底改变逻辑。
同样,只要通过遵循逻辑处理顺序维护查询语义,优化器如何在内部执行并不重要。
这里的关键词是“优化”:它完全是它所说的