Topyuluo
Topyuluo
采纳率100%
2015-04-12 01:44

SQL Server 的一对多关系查询

已采纳

图片说明

A表和B表是一对多关系,要如何写sql语句实现图中的效果。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • danielinbiti danielinbiti 6年前

    SQLServer如下

     CREATE TABLE A(
      id int,
      name varchar(20)
    );
    CREATE TABLE B(
      bid int,
      name varchar(20),
      pid int
    );
    insert into A(id,name) VALUES(1,'张三');
    insert into A(id,name) VALUES(2,'李四');
    insert into B(bid,name,PID) VALUES(1,'王五',1);
    insert into B(bid,name,PID) VALUES(2,'张飞',1);
    insert into B(bid,name,PID) VALUES(3,'钱六',2);
    
    select a.*,r.data from a left join(
    SELECT pid, data=STUFF((SELECT ','+name FROM b t WHERE pid=t1.pid FOR XML PATH('')), 1, 1, '')
    FROM b t1
    GROUP BY pid
    ) r on a.id=r.pid
    
    点赞 1 评论 复制链接分享
  • bdmh bdmh 6年前

    你还是这个存储过程吧,用游标遍历拼接出后两个字段,要么就查出竖表,通过代码组织成你的格式

    点赞 评论 复制链接分享

为你推荐