我在postgresql db中有两个表如下: users_orgs
user_id,org_id
112,223
113,224
112,225
单位
id,name
223,Apple Ltd.
224,Banana Ltd.
225,Cherry Ltd.
我正在尝试生成如下所示的输出:
user_id,org_id,name
112,223,Apple Ltd.
113,224,Banana Ltd.
我只想匹配一个组织,无论user_id出现在orgs_users表中的次数如何。我对哪一个(min,max,等等)无动于衷。
下面的查询采用user_ids列表来查询这两个表并生成列表,但是我得到了重复项,所以出了点问题。
select min(users_orgs.org_id), users_orgs.user_id, orgs.name from users_orgs
left join orgs on users_orgs.org_id=orgs.id where orgs_users.user_id in (112,113)
group by users_orgs.division_id, users_orgs.user_id, orgs.name
答案 0 :(得分:1)
select uo.user_id, uo.org_id, o.name
from (select user_id, min(org_id) org_id
from users_orgs where user_id in (112,113)
group by user_id) uo
left join orgs o on uo.org_id = o.id;
(分组后加入ORGS)