如题,我用的是mysql5.5,貌似对full join还是不支持,又上网查了下,貌似只能用left join和right join,然后再union,不过网上的方法只能对两个或三个进行全连接,我这里有7个表要全连接,不知道怎么写,请教各位了。

解决方案 »

  1.   

    一般很少有业务需要做full outer join的 
    如果不可避免  做七次left join和right join,然后再union
      

  2.   

    就是七个表,每两个都要连接吗? 比如有t1到t7共七个表那就这样:
    select * from t1 
    left join t2 on t1.id=t2.id
    left join t3 on t1.id=t3.id
    left join t4 on t1.id=t4.id
    left join t5 on t1.id=t5.id
    left join t6 on t1.id=t6.id
    left join t7 on t1.id=t7.id
    union
    select * from t2
    right join t1 on t2.id=t1.id
    left join t3 on t2.id=t3.id
    left join t4 on t2.id=t4.id
    left join t5 on t2.id=t5.id
    left join t6 on t2.id=t6.id
    left join t7 on t2.id=t7.id
    union 
    select * from t3
    right join t1 on t3.id=t1.id
    right join t2 on t3.id=t2.id
    left join t4 on t3.id=t4.id
    left join t5 on t3.id=t5.id
    left join t6 on t3.id=t6.id
    left join t7 on t3.id=t7.id
    ......
    是这样写吗?