SQL:使用SUBQUERY的左外部联接
问题描述:
我的任务问题:显示每个客户的贷款总数,包括没有贷款的客户。提示:首先使用子查询形成外部连接表的右侧部分。SQL:使用SUBQUERY的左外部联接
我已经用下面的代码来实现这一点:
SELECT DISTINCT
C.CustomerID,
C.LastName,
C.FirstName,
COUNT(L.LoanID) AS 'Number of Loans'
FROM Customer C
LEFT OUTER JOIN Loan L
ON C.CustomerID = L.CustomerID
GROUP BY C.CustomerID
但是我需要使用一个子查询与LEFT OUTER JOIN,但我不知道如何去这一点。有什么建议么?
答
你可以去这样理解:
SELECT c.FirstName, c.LastName, lc.LoanCount FROM
Customer c
LEFT OUTER JOIN
(
SELECT l.CustomerID, LoanCount = COUNT(1)
FROM Loan l
GROUP BY l.CustomerID
) lc ON c.CustomerId = lc.CustomerId
,如果你不想对那些0贷款NULL可以使用
SELECT c.FirstName, c.LastName, LoanCount = ISNULL(lc.LoanCount, 0)
请务必阅读正文再做作业[问]。还[mcve]。什么是你可以设想说的结果?像,*它的列*?你说你“不确定”。好的,你有什么探索?你可以识别/做什么*部件?例如,如果你只是想要客户ID和负载计数,你可以从贷款。怎么样? – philipxy