因此,这可能更多是关于如何加入MySQL的理论性问题,但我希望获得一些指导。
假设我有三个表,表a,表b和表c,其中表a和表b是事实表,表c是表b的维表。如果我想将表b留在表a上(我想保留表a的所有内容,但也要匹配表b中的内容),即使将表b留在表中,我仍可以将表c内联接到表b上吗? ?还是我必须将表c加入表b?还是出于所有意图和目的,这两者都会产生相同的结果?
select a.column, c.name
from tablea a
left join tableb b on a.id = b.id
inner join (?) tablec c on b.name_id = c.name
MySQL支持使您能够实现所需语法的语法:
select a.column, c.name
from
tablea a
left join
tableb b
inner join tablec c on b.name_id = c.name
on a.id = b.id
;
在这种情况下tableb
,tablec
首先将表和连接在一起,然后将它们的连接结果外部连接到tablea
。
但是,最终结果集与rcl的solution中的@simon相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句