多个leftjoinon使⽤时的顺序问题
-- 多个left join on使⽤时的顺序问题
-- 解答
-- a left join b on 条件1 left join c on 条件2 执⾏顺序是:先a和b进⾏连接,⽣成⼀张中间表d,然后再和c进⾏条件连接⽣成最后的表的数据
-- select * from a left join b on (a,b的连接条件)left join c on(a,b形成的临时中间表和c的连接条件)
SELECT -- 这⾥是显⽰的数据表头名称
a.`id` one_id,
多表left joina.`pname` one_pname,
b.`id` two_id,
b.`pname` two_pname,
c.`id` three_id,
c.`pname` three_pname
FROM -- ⾃关联查询
teachplan a -- 表的别名为a
LEFT JOIN teachplan b -- 表的别名为b
ON b.`parentid` = a.`id` -- 基于a.id = b.id
LEFT JOIN teachplan c -- 表的别名为c
ON c.`parentid` = b.`id`
WHERE a.`parentid` = '0' -- 条件 ⼀级id必须为0 并且课程id为 Bootstrap开发框架的id
AND a.`courseid` = '4028e581617f945f01617f9dabc40000'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论