已知
表1                                表2                             表3
   字段1      其它字段          字段1      其它字段                   字段1      其它字段
GROUP ID 1   表1记录        GROUP ID 1     表2记录              GROUP ID 1     表3记录  
GROUP ID 1   表1记录        GROUP ID 1     表2记录              GROUP ID 2     表3记录  
GROUP ID 2   表1记录       GROUP ID 1     表2记录                      
GROUP ID 2   表1记录        GROUP ID 2     表2记录                      
                              GROUP ID 2     表2记录                      
                              GROUP ID 2     表2记录                      
                              GROUP ID 2     表2记录                      
其中 GROUP ID 1, GROUP ID 2是表1,表2,表3中一个字段1的值,如果按字段1来JOIN会有很多重复记录,我是想实现 ,这三个表中按字段1分组后,相同组的哪个表的记录多就以哪个为准,记录少的表,其余字段就显示为NULL就行 如下显示:GROUP ID 1   表1记录        GROUP ID 1     表2记录              GROUP ID 1     表3记录  
GROUP ID 1   表1记录        GROUP ID 1     表2记录              GROUP ID 1      NULL    
GROUP ID 1    NULL         GROUP ID 1     表2记录              GROUP ID 1      NULL        
GROUP ID 2   表1记录        GROUP ID 2     表2记录              GROUP ID 2     表3记录        
GROUP ID 2   表1记录        GROUP ID 2     表2记录              GROUP ID 2      NULL
GROUP ID 2    NULL          GROUP ID 2     表2记录              GROUP ID 2      NULL        
GROUP ID 2    NULL        GROUP ID 2     表2记录              GROUP ID 2      NULL          
                                

解决方案 »

  1.   

    已知
    表1                                表2                             表3
       字段1      其它字段          字段1      其它字段                   字段1      其它字段
    GROUP ID 1   表1记录        GROUP ID 1     表2记录              GROUP ID 1     表3记录  
    GROUP ID 1   表1记录        GROUP ID 1     表2记录              GROUP ID 2     表3记录  
    GROUP ID 2   表1记录        GROUP ID 1     表2记录                      
    GROUP ID 2   表1记录        GROUP ID 2     表2记录                      
                                  GROUP ID 2     表2记录                      
                                  GROUP ID 2     表2记录                      
                                  GROUP ID 2     表2记录                      
    其中 GROUP ID 1, GROUP ID 2是表1,表2,表3中一个字段1的值,如果按字段1来JOIN会有很多重复记录,我是想实现 ,这三个表中按字段1分组后,相同组的哪个表的记录多就以哪个为准,记录少的表,其余字段就显示为NULL就行 如下显示:GROUP ID 1   表1记录         GROUP ID 1     表2记录              GROUP ID 1     表3记录  
    GROUP ID 1   表1记录         GROUP ID 1     表2记录              GROUP ID 1      NULL    
    GROUP ID 1    NULL         GROUP ID 1     表2记录              GROUP ID 1      NULL        
    GROUP ID 2   表1记录         GROUP ID 2     表2记录              GROUP ID 2     表3记录        
    GROUP ID 2   表1记录         GROUP ID 2     表2记录              GROUP ID 2      NULL
    GROUP ID 2    NULL         GROUP ID 2     表2记录              GROUP ID 2      NULL        
    GROUP ID 2    NULL         GROUP ID 2     表2记录              GROUP ID 2      NULL          
      

  2.   

    要是每次都是表2的记录最多的话就简单了
    select a.*,b.*,c.*
    from 表1 A,表2 B,表3 C
    where b.字段一=a.字段一(+) and b.字段一=c.字段一(+)
      

  3.   


    t1表大的方法:
    SELECT T1.*, T2.*, T3.*
      FROM T1, T2, T3
     WHERE T1.GROUP_ID_1 = T2.GROUP_ID_1(+)
       AND T1.GROUP_ID_1 = T3.GROUP_ID_1(+);t2表大的方法:
    SELECT T1.*, T2.*, T3.*
      FROM T1, T2, T3
     WHERE T2.GROUP_ID_1 = T1.GROUP_ID_1(+)
       AND T2.GROUP_ID_1 = T3.GROUP_ID_1(+);t3表大的方法:
    SELECT T1.*, T2.*, T3.*
      FROM T1, T2, T3
     WHERE T3.GROUP_ID_1 = T1.GROUP_ID_1(+)
       AND T3.GROUP_ID_1 = T2.GROUP_ID_1(+);
      

  4.   

    sorry, 各位,来迟了, 谢回复现在的问题是 这三个表 , 也可能是四个表 , 每个表中同一GROUP ID 的记录 不知道谁多谁少,  需求就是 同一GROUP 以多的记录有准, 其它表的记录 不够的用 NULL 补齐 
      

  5.   

    这个需求是不能用OUTER JOIN 实现 , 举例如 表1 同一GROUP 的每一行 可能与 表2 同一GROUP 的任一行 按 GROUP_ID来关联都是匹配的, 但 我想要的是 同一GROUP , 
    表1 的第一行 配对 表2的第一行,
    表1 的第二行 配对 表2的第二行 , 
    表1 如果没有第三行, 但 表2有 , 那 就是 表1 除 GROUP_ID外其它字段都为NULL 配对 表2的第三行这里 不一定表1同一GROUP的记录会比表2少