早教吧 育儿知识 作业答案 考试题库 百科 知识分享

有3张表我使用了两个leftjoin结果查询出错,使用innerjoin成功了,求看看问题出在哪select*fromrleftjoinponr.tran=p.stanleftjoinmonp.mid=m.idwherem.bid='110001'andr.id='05';上面这种查出了别人的记

题目详情
有3张表我使用了两个left join结果查询出错,使用inner join成功了,求看看问题出在哪
select *
from r left join p on r.tran = p.stan
left join m on p.mid = m.id where m.bid = '110001' and r.id='05';
上面这种查出了别人的记录
select *
from r
left join p on r.tran = p.stan
inner join m on p.mid = m.id where m.bid = '110001' and r.id='05';
这种是正确的
求大神教教,实在想不出第一种哪里有问题,不是已经用where进行过滤了吗?
▼优质解答
答案和解析
要是想用外联结, m.bid = '110001' 最好写在 on 内, 而不是写在where 内.