问题:如果有A表和B表,A表有a1,a2,a3....an字段,B表有b1,b2,b3....bn字段,想查出同时满足条件a1=b1,a2=b2,a3=b3这三个条件的所内容?谢谢

解决方案 »

  1.   

    -- 这个意思 吗?
    select a.*, b.* 
    from a 
    left join b on a1=b1 and a2=b2 and a3=b3
      

  2.   

    和楼上那个相比,楼上是在联接的时候就过滤了,我的是联接后过滤,两个结果是不一样的
    select a.*, b.* 
    from a 
    left join b on a1=b1 
    where  a2=b2 and a3=b3
      

  3.   


    用内连接:select a.*, b.* 
    from a 
    inner join b on a1=b1 and a2=b2 and a3=b3
      

  4.   

    select 
     a.*,
    b.*  
    from taba  a
    inner join  tabb  b on a.a1=b.b1 and a.a2=b.b2 and a.a3=b.b3
      

  5.   

    select a.*, b.* 
    from a 
    left join b on a1=b1 and a2=b2 and a3=b3--》查看运行计划,它自动会转为内连接的
      

  6.   

    在使用left jion时,on和where条件的区别如下: 
    1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉
    网上找的,呵呵