所以我有一个人员表和bank_accounts表:
People
id | name
1 John
2 Mark
3 Mary
BankAccount
id | person_id | currency
1 1 'USD'
2 1 'EUR'
3 2 'USD'
4 2 'USD'
5 3 'EUR'
如果该所有者只拥有最多一种货币的帐户,我想与其所有者取回所有帐户。我不想取回任何帐户,该帐户由另一种货币的另一个帐户的用户拥有。嗯:P
所以我想要回来的表看起来像那样:
account_id | person_id | currency
3 2(Mark) 'USD'
4 2(Mark) 'USD'
5 3(Mary) 'EUR'
希望它是可以理解的。这当然是简化的例子。我会在包含大量数据的更大的表上使用它。所以一些效率也会很好。
非常感谢您的时间和帮助!
答案 0 :(得分:0)
select *
from bankAccount
where person_id in
(
select person_id
from bankAccount
group by person_id
having count(distinct currency) = 1
)