Sql 同时选择两个表
我有如下用户和用户组表: 使用者 用户组 我有一个id为1的用户。我要选择此用户加入的所有组、组成员的名称和用户组的类型。我可以只用一个查询就完成吗?实现这一目标的最佳方式是什么 样本数据 使用者 用户组 输出应如何:Sql 同时选择两个表,sql,database,postgresql,Sql,Database,Postgresql,我有如下用户和用户组表: 使用者 用户组 我有一个id为1的用户。我要选择此用户加入的所有组、组成员的名称和用户组的类型。我可以只用一个查询就完成吗?实现这一目标的最佳方式是什么 样本数据 使用者 用户组 输出应如何: [{ type: 1, name: ["Jeff", "Mehmet"] }, { type: 1, name: ["Jeff","Mehmet","Walter"] }, { type: 2, name: ["Jeff", "Mehmet"] }] 您需要多个联接和一些阵
[{
type: 1,
name: ["Jeff", "Mehmet"]
},
{
type: 1,
name: ["Jeff","Mehmet","Walter"]
},
{
type: 2,
name: ["Jeff", "Mehmet"]
}]
您需要多个联接和一些阵列功能:
select ug.type,
array_remove(array[u1.name, u2.name, u3.name], null)
from user_groups ug left join
users u1
on ug.user_1 = u1.id left join
users u2
on ug.user_2 = u2.id left join
users u3
on ug.user_3 = u3.id;
是的,这就是联接的全部思想:在一个查询中将两个表联接在一起。在这种情况下,您希望从将user\u group name加入到用户表name列的user\u groups表中选择类型和名称。您不是已经问过了吗?
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"]
}]
select ug.type,
array_remove(array[u1.name, u2.name, u3.name], null)
from user_groups ug left join
users u1
on ug.user_1 = u1.id left join
users u2
on ug.user_2 = u2.id left join
users u3
on ug.user_3 = u3.id;