【发布时间】:2019-10-30 23:14:56
【问题描述】:
我有 users 和 user_groups 表,如下所示:
用户
id - PK
name
timestamp
用户组
user_1 - Foreign key to users id
user_2 - Foreign key to users id
user_3 - Foreign key to users id
type
我有一个 id = 1 的用户。我想选择这个用户加入的所有组,组成员的名称和用户组的类型。我可以只用一个查询来做到这一点吗?实现这一目标的最佳方法是什么?
样本数据
用户
id - 1
name - Jeff
id - 2
name - Mehmet
id - 3
name - Walter
用户组
user_1 - 1
user_2 - 2
user_3 - null
type - 1
user_1 - 1
user_2 - 2
user_3 - 3
type - 1
user_1 - 1
user_2 - 3
user_3 - null
type - 2
输出应该如何:
[{
type: 1,
name: ["Jeff", "Mehmet"]
},
{
type: 1,
name: ["Jeff","Mehmet","Walter"]
},
{
type: 2,
name: ["Jeff", "Mehmet"]
}]
【问题讨论】:
-
是的,这就是连接的全部思想:您在一个查询中将两个表连接在一起。在这种情况下,您希望从 user_groups 表中选择类型和名称,将 user_group 名称连接到用户的表名称列。
-
你不是已经问过这个了吗? stackoverflow.com/questions/58605103
标签: sql database postgresql