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 ))
时间: 2024-02-29 18:54:03 浏览: 128
这是一个SQL查询语句,其目的是查询在布鲁克林市没有开户的所有客户姓名。
具体解释如下:
1. `select distinct S.customer_name`:选择不同的客户姓名,以避免重复。
2. `from depositor as S`:从“存款人”表中选择数据,并将其别名为“S”。
3. `where not exists`:使用“not exists”关键字执行否定的存在性检查。
4. `( (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 ))`:在布鲁克林市开户的所有分行名称与S客户的分行名称进行比较,如果S客户未在任何一个分行开户,则该记录将被选择。
需要注意的是,这个查询语句的具体实现方式可能因数据库系统的不同而有所不同。
相关问题
select distinct customer_name from borrower, loan where borrower.loan_number = loan.loan_number and branch_name = 'Perryridge' and (branch_name, customer_name ) in( select branch_name, customer_name from depositor, account where depositor.account_number = account.account_number )
这是一个 SQL 查询语句,目的是查找在 Perryridge 分行有存款账户的所有客户姓名。具体解释如下:
首先,使用 inner join 连接 borrower 表和 loan 表,以获取所有在 Perryridge 分行有贷款的客户信息。
然后,在 inner join 的结果集上再次使用 inner join 连接 depositor 表和 account 表,以获取所有在 Perryridge 分行有存款账户的客户信息。
最后,使用 select distinct 语句去重并只返回客户姓名。
阅读全文