SELECT dbo.A.*, dbo.B.pic_name AS pic_name
FROM dbo.A ,dbo.B 
where dbo.A.id *= dbo.B.id

解决方案 »

  1.   

    呵呵,该一下:
    SELECT dbo.A.*, isnull(dbo.B.pic_name,'') AS pic_name
    FROM dbo.A ,dbo.B 
    where dbo.A.id *= dbo.B.id
      

  2.   

    to Haiwer(海阔天空):
    不知你是否懂我的意思。如果b.id= 5的记录已导出的话还是不能输出A.id= 5的记录,而我的要求是输出如下:
    A.id  A.XXX1  A.XXX2 B.pic_name
    1     .....   ...... 'a1bw222'
    1     .....   ...... 'aadsfas'
    1     .....   ...... 'bafdaas'
    5     .....   ...... ''OK?
      

  3.   

    如Haiwer的用外连接即可, 以下相同:
    SELECT dbo.A.*, isnull(dbo.B.pic_name,'') AS pic_name
       FROM dbo.A LEFT OUTER JOIN
            dbo.B ON dbo.A.id = dbo.B.id
      

  4.   

    我上面的跟贴晚了, 本来是跟Haiwer的第一个贴.
      

  5.   

    b.id= 5的记录已导出 == b.id= 5的记录从B表删掉是吧? 如果是, 结果是你想的那样.
      

  6.   

    to nononono(null,null):
      可行。给分
    thanks Haiwer too!
      

  7.   

    j_xuhome(臭名招著的程序员), Haiwer(海阔天空)写的也对呀. 
      

  8.   

    tonononono(null,null) 
    我问一个问题,如果b 表中根本就没有id=5这条记录(注意不是因为倒出去了),那你的视图不是把a 表中的id=5的记录也显示出来了吗。
      

  9.   

    是.
    左连接是保证选出左边表的记录的, 如果没有右边表对应的记录, 则右边表的字段值为NULL.