日期:2014-05-17  浏览次数:20627 次

不知咋描述,算是行列转换?
表s
sindex  sname
s1        张三
s2        李四


表t
tindex   tname
t1       他是谁
t2       不认识


表sc
sindex   tindex
s1       t2
s1       t1
s2       t1

现在想的到一个类似于如下结构的结果
sindex        sname        tindexs      tnames
s1            张三         t1,t2                              他是谁,不认识
s2            李四         t1                                  他是谁

直接用sql能实现么咋弄啊,注意所有的index是变动的,不会是固定t1 t2 s1 s2这样的
谢谢
------最佳解决方案--------------------
;
WITH    huang
          AS ( SELECT   s.sindex ,
                        sname ,
                        t.tindex ,
                        t.tname
               FROM     S
                        INNER JOIN sc ON s.sindex = sc.sindex
                        INNER JOIN t ON sc.tindex = t.tindex
             )
    SELECT  a.sindex ,
            a.sname ,
            STUFF(( SELECT  ',' + tindex
                    FROM    huang b
                    WHERE   b.sindex = a.sindex
                            AND b.sname = a.sname
                  FOR
                    XML&