有两张表
表A结构内容如下F1 F2      
1  001   
2  002
3  003
4  004表B结构内容如下F1     F2
001    abc
002    qwe
001    abc
002    qwe
002    qwe
003    iop
004    yue
001    abc
003    iop
005    bcv
002    qwe
004    yue想用left join 把两张变连接在一起 A表记录数不变 但是需要把b表的F2字段连接到一起构成新的结果集
但依然只能有四条记录,请问怎么用一个sql语句实现

解决方案 »

  1.   

    --A,B 为你的表名SELECT A.*, C.F2 AS F3
      FROM A
      LEFT JOIN (SELECT F1, MIN(F2) FROM B GROUP BY F1) C
        ON A.F2 = C.F1
      

  2.   

    --A,B 为你的表名SELECT A.*, C.F2 AS F3
      FROM A
      LEFT JOIN (SELECT F1, MIN(F2) F2  --此处加一个别名
     FROM B GROUP BY F1) C
        ON A.F2 = C.F1
      

  3.   


    --方法2
    SELECT A.*, C.F2 AS F3
      FROM A
      LEFT JOIN (SELECT F1, F2, 
    ROW_NUMber() OVER (PARTITION BY F1 ORDER BY F2 DESC) rnum
    FROM B GROUP BY F1) C
        ON A.F2 = C.F1
        AND rnum=1;
      

  4.   

    select f1, wm_concat(f2) from (
    select a.f1, b.f2 from a, b where a.f2=b.f1)
    group by f1;
      

  5.   


    select F1, wm_concat(F2) from (
    select a.F1, b.F2 from a, b where a.F2=b.F1)
    group by F1;
      

  6.   

    select f1, wm_concat(f2) from (
    select a.f1, b.f2 from a, b where a.f2=b.f1)
    group by f1;