-- 多个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,
a.`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'