簡體   English   中英

在第1列中選擇具有非唯一值的行,范圍限於第2列

[英]select rows with non distinct values in column 1 scoped to column 2

所以我有一個人表和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'

如果該所有者只有最多一種貨幣的賬戶,我想找回所有與其所有者的賬戶。 我不想找回由用戶擁有的任何帳戶,該用戶的另一個帳戶使用另一種貨幣。 erm:P

所以我想找回來的桌子是這樣的:

account_id | person_id | currency

3            2(Mark)     'USD'
4            2(Mark)     'USD'
5            3(Mary)     'EUR'

希望這是可以理解的。 當然,這是簡化的示例。 我將在具有大量數據的更大表上使用此功能。 因此,一些效率也將很好。

非常感謝您的時間和幫助!

select * 
from bankAccount
where person_id in
(
  select person_id
  from bankAccount
  group by person_id
  having count(distinct currency) = 1
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM