select a表.* ,部门1.名称, 部门2.名称, ...
from a表 join 部门 部门1 on a表.单位1=部门1.代码 
join 部门 部门2 on a表.单位2=部门2.代码 
...
where @input1

解决方案 »

  1.   

    建议用左连接 left join—————————————————————————————————
    ┏━★━━◆━━★━┓ 
    ♂欢|◢CSDN◣|使♂        ▲自由保存帖子,浏览,关注检测
    ┃迎|◥论坛助手◤|用┃        ▲完善的CSDN客户端工具
    ┗━☆━━◇━━━☆┛       ▲自动添加签名......让你更快,更爽,更方便地上CSDN...
    http://www.csdn.net/expert/topic/573/573604.xml
    http://www.chinaok.net/csdn/csdn.zip
      

  2.   


    全部都传 可以的,我旁边这位就这样搞,确实省事.但要注意 identiy 主健 外健 和唯一索引 的情况
      

  3.   

    select a表.* ,部门.名称, from  join 部门 on a表.单位=部门.代码 where @input1
    我的目的是这样的只要满足条件@input1,就应该把a表的相应记录查出来,但是a表相应的记录里面的单位字段可能不一定在部门这边有它的记录或者干脆在a表的这条记录里面根本就是为空的,可是即使这样我也要显示它的其它信息啊,只是不显示它的部门的名称啊!
     但是上面这条语句不能满足我的目的啊!
      

  4.   

    不是说了,用左连接吗select a表.* ,部门1.名称, 部门2.名称, ...
    from a表 
    left join 部门 部门1 on a表.单位1=部门1.代码 
    left join 部门 部门2 on a表.单位2=部门2.代码 
    ...
    where @input1
      

  5.   

    select a表.* ,部门.名称, from  join 部门 on a表.单位=部门.代码 where @input1
    select a表.* ,部门.名称, from  部门 , a表 where a表.单位=部门.代码 +@input1
    这两句有什么不同吗???