--C.编号是从那里来的? 是A.编号吧?select a.编号,b.a.姓名,安装人员姓名=b1.姓名,设计人员姓名=b2.姓名
from A,B b1,B b2
where a.安装人员编号=b1.人员编号 and a.设计人员编号=b2.人员编号

解决方案 »

  1.   

    b表可以可以用两个别名b1和b2或者是视图区别以下(补充上)
      

  2.   

    因為不同的安装人编号和设计人编号﹐要連接B表兩次select a.编号,b.a.姓名,安装人员姓名=b1.姓名,设计人员姓名=b2.姓名
    from A a 
    left join B b1 on a.安装人员编号=b1.人员编号
    left join B b2 on a.设计人员编号=b2.人员编号
      

  3.   

    楼上的思路是对的
    zjcxc(邹建) :是Theta Joinhdhai9451(※★開拓者...糊涂中☆※) :使用的是标准的 连接
    在Oracle的低版本不支持
      

  4.   

    如果是sql数据库,能保证A表的所有设计人员编号,安装人员编号在B表中存在,则我的没有问题如果你是其他数据库,你在提问题的时候应该注明,毕竟这里是SQL Server版
      

  5.   

    select 编号,姓名,b.姓名 , balias.姓名
    from a , b ,b balias
    where a.安装人编号=b.人员编号 and a.设计人编号=balias.人员编号
      

  6.   

    select 编号,姓名,b.姓名 AS 安装人姓名, balias.姓名 as 设计人姓名
    from a , b ,b balias
    where a.安装人编号=b.人员编号 and a.设计人编号=balias.人员编号
      

  7.   

    MSSQL数据库.
    还有一点没有说清楚:在A表中, 安装人编号,设计人编号都是可null的字段.
    但是如果安装人编号,设计人编号有内容,则一定可在B表中找到
    所以一些朋友提供的一些方法,有点问题.
      

  8.   

    select a.编号,a.姓名,b.姓名 as 安装人员姓名,c.姓名 as 设计人员姓名
    from A a left join B b on a.安装人员编号=b.人员编号
     left join B c on a.设计人员编号=c.人员编号