【发布时间】:2017-03-30 14:24:45
【问题描述】:
我有一些桌子:
“分支”表(分支名称、分支城市、资产)
“客户”表(客户名称、客户街道、客户城市)
“账户”表(account_number、branch_name、balance)
“贷款”表(loan_number、branch_name、amount)
“存款人”表(customer_name、account_number)
“借款人”表(customer_name、loan_number)
现在我想查找在布鲁克林的所有分行都有帐户的所有客户。这是我针对此问题的 SQL。但我想知道如何使用 TABLE JOIN,而不使用 EXCEPT 来解决这个问题。有人可以帮帮我吗?????谢谢。
SELECT distinct S.customer_name FROM depositor as S
WHERE not exists (
(SELECT branch_name
FROM branch
WHERE branch_city = 'Brooklyn')
EXCEPT
(SELECT R.branch_name
FROM depositor as T, account as R
WHERE T.account_number = R.account_number and
S.customer_name = T.customer_name ))
【问题讨论】:
-
这不是和你的另一个问题一样吗?无论如何,我认为您想使用 JOIN 而不是 UNION。您是在尝试了解 UNION 的工作原理还是尝试为查询找到一个好的解决方案?