求一sql语句的写法..a表  
字段  a1   a2  a3
数据  1    2    3
      4    5    6
      7    8    9b表   
字段  b1   b2  b3
数据  1    b    c
      e    e    f
      g    h    ib2表   
字段  b1   b2  b3
数据  a    b    c
      e    e    f
      g    h    i我这将两个表一起查询.  关联的是a表的a1字段等于b表的b1字段,
现在我想要的结果是如果a1=b1 的数据时会查询b1的数据,
当没有a1=b1 时也能显示a1表的数据.怎么写.
类似 select a.*,b2.* from a left join b2 on a.a1 = b2.b1 的写法,当b2没有数据等于a表的a1时也能查出a表的数据.

解决方案 »

  1.   

    没有看懂你的意思,用LEFT JOIN不行?
    select a.*,b2.* from a left join b on a.a1 = b.b1
    贴结果出来看看
      

  2.   

    select a.*,b2.* from a left join b on a.a1 = b.b1
    union all
    select a.*,b2.* from a right join b on a.a1 = b.b1全连接?
      

  3.   

    我这将两个表一起查询.  关联的是a表的a1字段等于b表的b1字段, 
    现在我想要的结果是如果a1=b1 的数据时会查询b1的数据, 
    当没有a1=b1 时也能显示a1表的数据. 怎么写. 
    类似 select a.*,b2.* from a left join b2 on a.a1 = b2.b1 的写法,当b2没有数据等于a表的a1时也能查出a表的数据.
    ---------------------
    一时b表;一时b2表
    自己连需求都没说明白,别人很难帮你分析解决的哦
      

  4.   

    a1  a2  a3  b1  b2  b3  
    1 2 3 1 b c 
    4 5 6 NULL NULL NULL 
    7 8 9 NULL NULL NULL 其实左链就得了..是我看乱了..
    谢谢楼上各用.
      

  5.   

    不会你是想这样的结果吧:
    select a.* from a left join b on a.a1 = b.b1 
    union all 
    select a.* from a right join b on a.a1 <> b.b1