多表联合查询,该如何解决
多表联合查询
表a
id cj txm sxrq
1 车间1 pp155 2012-1-3
2 车间2 pp155 2012-3-6
3 车间3 pp155 2012-5-9
(cj为车间,txm为条形码,sxrq为送修日期字段)
表b
id lb txm wxrq
1 喇叭坏 pp155 2012-2-9
2 主机坏 pp155 2012-3-20
(lb为维修类别,wxrq为维修日期字段)
表c
txm xh
pp155 惠普
pp190 东芝
(xh为型号字段)
表a为送修表,表b为维修表,表c为基础信息表
想通过查询得到
cj sxrq lb wxrq xh txm
车间1 2012-1-3 喇叭坏 2012-2-9 惠普 pp155
车间2 2012-3-6 主机坏 2012-3-20 惠普 pp155
车间3 2012-5-9 惠普 pp155
(想实现:车间3的那个由于还没有维修,所以想只显示送修信息,维修信息不显示,但型号基本信息显示)
要用的左联接吗?
select a.cj,c.xh,b.lb
from a left outer join b on a.txm=b.txm
left outer join c on b.txm=c.txm
新手,不大会用哈,请高手指点下,我用的是ACCESS数据库
------解决方案--------------------
表a
id cj txm sxrq
1 车间1 pp155 2012-1-3
2 车间2 pp155 2012-3-6
3 车间3 pp155 2012-5-9
(cj为车间,txm为条形码,sxrq为送修日期字段)
表b
id lb txm wxrq
1 喇叭坏 pp155 2012-2-9
2 主机坏 pp155 2012-3-20
(lb为维修类别,wxrq为维修日期字段)
表c
txm xh
pp155 惠普
pp190 东芝
(xh为型号字段)
表a为送修表,表b为维修表,表c为基础信息表
想通过查询得到
cj sxrq lb wxrq xh txm
车间1 2012-1-3 喇叭坏 2012-2-9 惠普 pp155
车间2 2012-3-6 主机坏 2012-3-20 惠普 pp155
车间3 2012-5-9 惠普 pp155
(想实现:车间3的那个由于还没有维修,所以想只显示送修信息,维修信息不显示,但型号基本信息显示)
要用的左联接吗?
select a.cj,c.xh,b.lb
from a left outer join b on a.txm=b.txm
left outer join c on b.txm=c.txm
新手,不大会用哈,请高手指点下,我用的是ACCESS数据库
------解决方案--------------------
- SQL code
select a.cj,a.sxrq,b.lb,b.wxrq,c.xh,a.txm from (a left join b on a.txm=b.txm and a.sxrq=b.sxrq) inner join c on a.txm=c.txm order by a.sxrq