表格:
CUSTOMER
(客户名称(P),客户街道,客户城市)BRANCH
(分支名称(P),分支城市,资产)ACCOUNT
(帐户编号(P),分支名称,余额)LOAN
(贷款编号(P),分支名称,金额)DEPOSITOR
(客户名称(P),帐号(P))BORROWER
(客户名称(P),贷款编号(P))标记P
为的属性是表的主键。
上面是一个关系模式,我必须为以下查询编写SQL语法:
查找在“ Noida”的所有分支机构中都有帐户的客户的名称(其中Noida是地点的名称)
我尝试解决此问题,但输出结果是在诺伊达某个分支机构拥有帐户的那些客户。怎么做呢?
我在SQL中有疑问,即使在非主键上我们也可以结合两个关系吗?例如:
depositor.account-number = account.account-number and account.branch-name = branch.branch-name
在上面的语句中,branch-name
不是帐户的主键,而是分支的键。因此,上述权利吗?
这应该是正确的查询
select *
from CUSTOMER c
where not exists (
select BRANCH-NAME
from BRANCH
where BRANCH-CITY = 'Noida'
minus
select BRANCH-NAME
from ACCOUNT
join DEPOSITOR d using (ACCOUNT-NUMBER)
where d.CUSTOMER-NAME = c.CUSTOMER-NAME
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句