使用内部连接查询表?
问题描述:
我们正在尝试查找在同一分支中同时拥有贷款和帐户的客户的姓名。我们应该在这里使用inner join
吗?到目前为止,我们只写了;使用内部连接查询表?
select DISTINCT customer.name
FROM Customer, Has_Loan, Branch, Has_Account
WHERE
我们已经尝试了一些不同的东西没有得到任何进一步的,所以感谢任何形式的帮助或提示:)
答
你可以试试这个:
SELECT DISTINCT Customer.Name
FROM Customer
INNER JOIN Has_Account ON Customer.Ssn = Has_Account.Assn
INNER JOIN Account ON Account.AccountNo = Has_Account.ANo
INNER JOIN Has_Loan ON Customer.Ssn = Has_Loan.Lssn
INNER JOIN Loan ON Loan.LoanNo = Has_Loan.LNo
WHERE Loan.BranchID = Account.BranchID
答
select c.name
from customer c
join has_loan hl on hl.lssn = c.ssn
join loan l on hl.lno = l.loanno
join has_account ha on ha.assn = c.ssn
join account a on ha.ano = a.accountno
join branch b on b.branchid = a.branchid
where l.branchid = a.branchid
group by c.name;
今天提示:切换到现代,明确的'JOIN'语法。易于编写(没有错误),更易于阅读(和维护),并且在需要时更容易转换为外部联接。 – jarlh
我无法阅读那些微小的图像文字。此外,这里的大多数人都希望格式化文本,而不是图像。 – jarlh