最近在实际中出现个问题,就是表内多个字段需要关联同一张表,最后结果错误,求普及知识举例说明 下面是俩张表 一张是人员列表 每个人的都有三个兴趣科目 
查询语句select a.xm,a.kmdm1,b.kmmc,a.kmdm2,b.kmcm,a.kmdm3,b.kmmc
from rylb a,km_dm b
where a.kmdm1=b.kmdm
and a.kmdm2=b.kmdm
and a.kmdm3=b.kmdm
and a.xm in ('张三')
提交提示错误,请问语句如何写在可以达到 在表中抽出一个人分别的兴趣科目及科目代码?

解决方案 »

  1.   

    作为一个初学者,我只能帮你解决到这一步:
    SELECT distinct R.XM
        ,R.KM1,DECODE(KM,R.KM1,K.KMM) SKM1
        ,R.KM2,DECODE(KM,R.KM2,K.KMM) SKM2
        ,R.KM3,DECODE(KM,R.KM3,K.KMM) SKM3
        FROM RYLB R, KM K
        WHERE R.XM='CQ';
    你编程解决吧。
      

  2.   


    select a.xm,a.kmdm1,b.kmmc,a.kmdm2,c.kmcm,a.kmdm3,d.kmmc
    from rylb a,km_dm b,km_dm c,km_dm d
    where a.kmdm1=b.kmdm
    and a.kmdm2=c.kmdm
    and a.kmdm3=d.kmdm
    and a.xm in ('张三')
      

  3.   

    用inner join就可以了把
      

  4.   

    三楼正解,也可用子查询
    select a.xm,a.kmdm1, (select kmmc from km_dm where kmdm=a.kmdm1) kmmc1,
                          a.kmdm2, (select kmmc from km_dm where kmdm=a.kmdm2) kmmc2,
                          a.kmdm3, (select kmmc from km_dm where kmdm=a.kmdm3) kmmc3
      from rylb a;