现在有Table1,Table2两个表,Table1中有a、b、c、d四个字段,Table2中有a、e、f三个字段,而且Table1中的数据量大于Table2的,我现在想通过2个表的a进行一个查询,显示出a、b、c、d、e、f,如果Table1中a在Table中没有e、f信息,则查询结果中e、f两项为空,请问SQL语句应该怎么写? 

解决方案 »

  1.   

    select t1.a, t1.b, t1.c, t1.d, t2.e, t2.f
      from table1 t1 left outer join table2 t2
        on t1.a = t2.a
      
      

  2.   

    oracle专用写法,含义跟楼上的相同(我喜欢这种)select t1.a, t1.b, t1.c, t1.d, t2.e, t2.f
      from table1 t1 ,table2 t2
        where t1.a = t2.a(+)
      
      

  3.   

    请问一下这种方式如何能后避免重复呢?
    如果Table2中有多个a和Table1中的a相同,就会出现重复的数据行,怎么才能避免呢?
    因为如果以后将结果导入到一个a为主键的表中就会出现错误
      

  4.   

    可以加条件过滤
    table1中的a不重复吗?
    还有如果你不想重复,你要什么样的过滤条件
    a 为主键,你导入重复的值当然会出错
      

  5.   

    t1.a=t2.a(+)是什么意思??left join ...能不能用啊