【发布时间】:2021-10-15 06:32:19
【问题描述】:
我有 3 张桌子
用户
user_id name
1 mike
Assigned_Bosses
user_id boss_id
1 3
1 5
老板
boss_id boss_email
3 foo@bar.com
5 test@bar.com
如何选择一个用户,以便我可以在单行中获取所有老板的电子邮件,用;分隔?
name boss_email
mike foo@bar.com;test@bar.com
以下显然行不通,但这是我想要做的:
SELECT concat(b.boss_email), u.name
FROM Users u
LEFT OUTER JOIN Assigned_Bosses a ON a.user_id = u.user_id
LEFT OUTER JOIN Bosses b ON b.boss_id = a.boss_id
WHERE user_id = 1
这也是 SQL Server 2008,因此并非所有功能都可用。
【问题讨论】:
-
请解释您为什么使用不受支持的 SQL Server 版本。
-
我真的别无选择
-
对于旧 SQL Server 版本中的聚合字符串连接,请使用
FOR XML,详细说明为here。
标签: sql sql-server-2008