在SQL Server中合并多行

用户名

我自己不知道这一点。希望有人可以帮助我。

我有三个表:userscardsrefereesusers_cards

使用者:

id  |   userName  |   referee_id
----------------------------
1   |   u1        |    1
2   |   u2        |    1
3   |   u3        |    2

裁判员:

id  |   refName
--------------
1   |   ref1
2   |   ref2

牌:

id  |   cardName
--------------
1   |   card1
2   |   card2

用户卡:

user_id  |   card_id  |   color   |   number
-------------------------------------------
1        |   1        |   red     |   123
1        |   2        |   yellow  |   312
2        |   2        |   yellow  |   523
3        |   1        |   red     |   344

我想要得到的结果是:

id   |   userName   |   refName   |   cards
1    |      u1      |    ref1     |   card1: red (123), card2: yellow (312)
2    |      u2      |    ref1     |   card2: yellow (523)
3    |      u3      |    ref2     |   card1: red (344)

等等...

当用户拥有一张以上的卡时,我只能得到多行。所以我怎么能这样合并它们。

谢谢任何能帮助我的人!´

编辑:

目前我只使用LEFT JOINs

SELECT UserName, refName cardName, color, number,
FROM users
LEFT JOIN referees ON users.referee_id = referees.id
LEFT JOIN users_cards ON users.id = users_cards.user_id
LEFT JOIN cards ON dbo.users_cards.card_id = cards.id
凤凰
SELECT users.id, UserName, refName,
 cards = (
    SELECT  
      STUFF(( 
           SELECT ', card' + CAST(ROW_NUMBER() OVER (ORDER BY cards.id) AS VARCHAR) 
                  +': '+ color + '(' + CAST(number AS VARCHAR) +')'
           FROM 
              users_cards
              LEFT JOIN cards ON dbo.users_cards.card_id = cards.id
           WHERE users.id = users_cards.user_id
           FOR XML PATH('')), 1, 1, '') 
  )
FROM users
LEFT JOIN referees ON users.refereeid = referees.id

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL中合并多行

来自分类Dev

在SQL Server中动态将多行合并为多列

来自分类Dev

合并多行中的值并删除。PostgreSQL SQL

来自分类Dev

比较SQL Server中的多行

来自分类Dev

在SQL Server中合并基于唯一标识符的多行(对于SQL Server为GROUP_CONCAT)?

来自分类Dev

在SQL Server中将多行合并为一行

来自分类Dev

SQL Server:将“合并”中的“从”行合并

来自分类Dev

合并SQL SERVER中的记录

来自分类Dev

在 SQL Server 中合并表

来自分类Dev

使用IN子句更新SQL Server中的多行

来自分类Dev

合并SQL中的多行,并在主键上打断

来自分类Dev

SQL Server从C#中的.sql文件插入多行

来自分类Dev

在SQL Server中合并2行

来自分类Dev

Python中的SQL Server合并语句

来自分类Dev

在SQL Server中合并两列的行

来自分类Dev

Sql Server 2012中的死锁与合并

来自分类Dev

在SQL Server中合并相同的结果

来自分类Dev

合并SQL Server中的2行

来自分类Dev

合并SQL Server中的重复记录

来自分类Dev

SQL Server:多行XML

来自分类Dev

如何在SQL Server中获得合并/合并表?

来自分类Dev

在 SQL Server 中根据日期合并和合并行

来自分类Dev

在单个SQL Server查询中更新多行-在VBA中

来自分类Dev

如何使用SQL Server合并具有相同ID的许多行

来自分类Dev

SQL Server将多行合并为具有多列的一行

来自分类Dev

在多行上JOIN以在SQL Server中仅选择TOP行

来自分类Dev

在SQL Server触发器中处理多行

来自分类Dev

将多行视为SQL Server中的一项

来自分类Dev

SQL Server-将多行中的列显示为单行