sql 外连接的执行步骤是什么啊 是不是先笛卡尔积求两表结果集 再根据条件筛选结果 如果不是 哪位大神详细解释一下 不要链接 谢谢。。。
1、左外连接
代码
select *
from [Book] as b left join [Student] as s
ON b.StudentId=s.StudentId
等价于
select *
from [Book] as b left join [Student] as s
ON b.StudentId=s.StudentId(+)
执行过程
即以from [Book] left join [Student]的Book表为基准,即以Book表(b表)的b.StudentId为基准。遍历Student表(s表)中与之匹配的b.StudentId。若b.StudentId含有s.StudentId匹配项,则进行拼接,然后遍历Student表的下一条s.StudentId,当查询完毕则进入下一条b.StudentId。若b.StudentId没有相应s.StudentId匹配项时,则显示左表的项,拼接右表的项显示为NULL。
https://www.2cto.com/database/201408/324401.html
举个例子:select * from t1 join t2 on t1.no=t2.no where no=1 group by name;
执行顺序:先连接表,在group by,再where,最后select.