注意:帐户由用户共享
查询是获取用户的所有帐户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
答案 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, 辛迪