Postgresql获取用户的所有帐户ID,其中用户具有帐户ID 33,34和35

时间:2014-06-18 03:07:38

标签: postgresql

注意:帐户由用户共享

查询是获取用户的所有帐户ID,例如用户拥有帐户ID 33,34和35。

SELECT A.id FROM accounts A
INNER JOIN account_user AU ON AU.account_id = A.id
WHERE AU.user_id IN (
    SELECT AU.user_id FROM account_user AU
    WHERE AU.account_id IN (33, 34, 35)
    GROUP BY AU.user_id
)
GROUP BY A.id;

还有其他方式来写这个吗?

我在做什么 查找具有account_ids 33,34和35的所有唯一users_ids 查找每个用户拥有的所有唯一account_id。 (帐户在用户之间共享) 返回所有唯一的account_ids

1 个答案:

答案 0 :(得分:0)

如果您需要的所有数据都在1个表格中,则您不需要加入:     SELECT user_id,account_id      来自帐户      WHERE account_id IN(33,34,35)     ;

如果您需要一个不同的列表,请使用distinct:     SELECT DISTINCT user_id      来自帐户      WHERE account_id IN(33,34,35)     ;

HTH, 辛迪