首页 > 解决方案 > 如何在 Postgres 中加入多行表

问题描述

我在 Postgres 中有两张桌子

用户

ID 姓名 group_a_id group_b_id
1 user_one 1 2
2 用户二 3 4

团体

ID 姓名
1 group_one
2 group_two
3 group_three
4 group_four

我正在寻找一个连接的结果,但从group表中寻找 2 行

结果

ID 姓名 group_a_id group_a_name group_b_id group_b_name
1 user_one 1 group_one 2 group_two
2 用户二 3 group_three 2 group_four

那么在一个连接查询中如何得到结果呢?

SELECT * from user,group WHERE user.group_a_id = group.id像这样如何group使用别名将两行从一行连接起来group_a_name, group_b_name

标签: sqlpostgresql

解决方案


你想要join。. . 两次:

select u.*, g1.name, g2.name
from users u left join
     groups g1
     on g1.id = u.group_a_id left join
     groups g2
     on g2.id = u.group_b_id;

推荐阅读