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,但我不知道如何去这一点。有什么建议么?

+0

请务必阅读正文再做作业[问]。还[mcve]。什么是你可以设想说的结果?像,*它的列*?你说你“不确定”。好的,你有什么探索?你可以识别/做什么*部件?例如,如果你只是想要客户ID和负载计数,你可以从贷款。怎么样? – philipxy

你可以去这样理解:

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)