表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数据库

解决方案 »

  1.   

    不好意思,少写了个字段
    表b
    id lb txm wxrq   sxrq
    1 喇叭坏 pp155 2012-2-9   2012-1-3
    2 主机坏 pp155 2012-3-20   2012-3-6
    (lb为维修类别,wxrq为维修日期字段)刚上网搜了下,说ACCESS数据库需要加个括弧,我写成下面的语句
    select a.cj,c.xh,b.lb  
    from (a left outer join b on a.txm=b.txm and a.sxrq=b.sxrq ) 
    left outer join c on a.txm=c.txm不过执行完,没显示表C的字段呀,就是c.xh
      

  2.   

    或者要实现
    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和表C不是用左联接的??
    新手,不太清楚哈
    kaikai_kk,我上回有个查询的就是你解决的,那个号是tnt3331023,那个没分了,就换了,高手给看看哈,ACCESS是不是不支持三个表的呀,还是有什么特殊的格式吗
      

  3.   

    kaikai_kk在吗?是不是我的数据表设计的有问题哈??
    表C是个基础信息表
    表a是送修表
    表b是维修表
    基础信息表c的txm是唯一的,能够检索到对应的型号等信息
    而表a,表b都可能存在多个相同的txm,因为同一种东西可能多次进行送修,并维修
    要是我表设计不对的话,请教下,怎么设计合适呢?能够实现上面查询后的那种效果呢??多谢了,请高手帮写下,搞定了我就速度结贴了
      

  4.   

    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
      

  5.   

    通过了,是我要的查询结果,谢谢了,我的SQL水平太差结贴了