【转载】Sql语句用left join 解决多表关联问题(关联套关联,例子和源码)
csdn中高手帮我给解决了,其实就是别名,给自己上了一堂别名的课,所谓别人是高手,其实就是自己是菜鸟吧!
表1:------------------------------ 【人事表】
表名:【Man】
字段: Man_Id,Man_Name,Zw_Id
1 貂蝉 2
2 曹操 1
表2:------------------------------ 【职务表】
表名:【Zw】
字段: Zw_Id,Zw_Name
1 校长
2 班主任
表3:------------------------------ 【工资表】
表名:【GZ】
字段: Man_Id,Money,Sex_Id
1 2500 1
2 4000 2
表3:------------------------------ 【性别表】
表名:【xb】
字段: Sex_Id,Sex_Name
1 女
2 男
需要的------------------------------- 【查询结果】:
Man_Id,Man_Name,sex_name,Zw_Name,Money
1 貂蝉 女 班主任 2500
2 曹操 男 校长 4000
方法一(推荐):
- select a.man_id,man_name,d.sex_name,zw_name,c.money
- from man as a
- left join zw as b on a.zw_id=b.zw_id
- left join gz as c on a.man_id=c.man_id
- left join xb as d on c.sex_id=d.sex_id
方法二:
- select Man_Id,Man_Name,sex_name,Zw_Name,Money from
- (
- select a.Man_Id,Man_Name,b.Zw_Id,Zw_Name,Money,Sex_Id from [Man] a
- left join [Zw] b on a.Zw_Id=b.Zw_Id
- left join [Gz] c on a.Man_Id=c.Man_Id
- )t
- left join xb m on m.Sex_Id=t.Sex_Id
方法三:
- select man.man_id,man.man_name,xb.sex_name,zw_name,gz.money
- from man
- left join zw on man.zw_id=zw.zw_id
- left join gz on man.man_id=gz.man_id
- left join xb on gz.sex_id=xb.sex_id