多个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小时内删除。