You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SQL Server中用LEFT JOIN保留Borrowers全量并筛选Loans特定记录

解决方案

要实现保留Borrowers表所有记录,仅关联Loans表中Loan_Type = 'Auto'的记录,关键是将贷款类型的过滤条件放在LEFT JOIN的ON子句中,而非WHERE子句。

正确SQL语句

SELECT 
    b.Borrower_ID,
    b.Name,
    l.Loan_ID,
    l.Loan_Type,
    l.Amount
FROM Borrowers b
LEFT JOIN Loans l
    ON b.Borrower_ID = l.Borrower_ID
    AND l.Loan_Type = 'Auto';

关键说明

如果把l.Loan_Type = 'Auto'放到WHERE子句中,会过滤掉Borrowers表中没有匹配到Auto类型贷款的记录(这类记录对应的Loans字段为NULL,WHERE条件l.Loan_Type = 'Auto'会排除NULL值),最终效果等同于INNER JOIN,无法保留所有Borrowers记录。

将条件放在ON子句时,LEFT JOIN会先匹配符合贷款类型条件的记录,对于Borrowers中无匹配的记录,Loans相关字段会显示为NULL,从而满足保留所有Borrowers记录的需求。

预期结果

预期结果

内容的提问来源于stack exchange,提问作者user24190256

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:35:07