【发布时间】:2019-11-28 14:12:31
【问题描述】:
假设我有以下 3 个表:
IDUser Name Surname
1 Lucas Wurth
2 John Charson
3 Erik Drown
IDUser IDLocation
1 1
1 2
2 1
3 2
IDLocation Name
1 Rome
2 Milan
一个用户表、一个位置表和一个用于为我们的用户分配位置的表。 我想从我的数据库中提取所有用户并有一个特定的列,其中报告了所有分配的位置,如下所示:
IDUser Name Surname Locations
1 Lucas Wurth Rome - Milan
2 John Charson Rome
3 Erik Drown Milan
请注意,用户 1 同时分配了罗马和米兰
目前我的查询:
SELECT
U.IDUser,
U.Name,
U.Surname,
UL.Name AS LocationName
FROM Users U
LEFT OUTER JOIN UserLocation UL ON
UL.IDUser = U.IDUser
LEFT OUTER JOIN Location L ON
UL.IDLocation = L.IDLocation
显然返回总共 4 条记录而不是 3 ,是否可以使用聚合函数 group by 来实现这一点?如果是这样,我应该怎么做?
【问题讨论】:
-
您使用的是哪个 dbms?
-
我正在使用微软的 sql server 管理工作室
标签: sql sql-server string-aggregation