把Where a.FID=1 and a.s_no=b.s_no
改为Where a.FID=1 or a.s_no=b.s_no 
这样行吗?

解决方案 »

  1.   

    pur_seller里面没有数据﹐怎么測試結果。。
      

  2.   

    表内的联结方式有四种:内联结,左外联结,右外联结,全连接
    定义如下:
    INNER
    指定返回每对匹配的行。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。FULL [OUTER]
    指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 返回的所有行的补充。LEFT [OUTER]
    指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为 NULL。RIGHT [OUTER]
    指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。
    你上面用的是默认的内联结,这时当B表为空时,则不能返回记录。
    你可以用左外连接,这样:SELECT a.*,b.linker,b.linker_tels,b.faxs,b.s_name 
    from  pur_pra a left join pur_seller b  on a.s_no=b.s_no
    Where a.FID=1