多表连接查询的老问题!
有四个表,表t1(id,name,yuwen)
表t2(id,name,shuxue)
表t3(id,name,yingyu)
表t4(id,name,lishi)
每个表本身的id和name是唯一的,每个表的记录数是不一定相等的(即同一个id在t1中存在,但在其他表中可能存在,也可能不存在)!
现在要求查询出这样的结果(id,name,yuwen,shuxue,yingyu,lishi),其中id为四个表中所有的id。
请大侠帮忙,谢谢!
[解决办法]
方法一;
select a.id,a.name,t1.yuwen,t2.shuxue,t3.yingyu,t4.lishifrom ((((select distinct id,name from (select id from t1 union all select id from t2 union all select id from t3 union all select id from t4 ) t) a left join t1 on a.id=t1.id)left join t2 on a.id=t2.id)left join t3 on a.id=t3.id)left join t4 on a.id=t4.id;