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

TSQL同表多连接:如何返回Store表中OwnerID/GMID为NULL的行

解决Store表中OwnerID/GMID为NULL的行无法返回的问题

嘿,我来帮你搞定这个问题!

你当前用的是标准的内连接(JOIN),这种连接方式只会返回两个表中能完美匹配连接条件的行。当Store表的OwnerID或者GMID是NULL的时候,根本没法和Employee表的EmployeeID匹配上,所以这些带NULL的行就被自动过滤掉了——这就是你看不到它们的核心原因。

要把这些行找回来,只需要把两个JOIN都改成**左连接(LEFT JOIN)**就行。左连接的特性是会保留左表(这里就是Store表)的所有记录,哪怕右表(Employee)没有对应的匹配项,这时候右表的关联字段就会显示为NULL。

修正后的完整查询语句如下:

SELECT 
    b.FirstName + space(1) + b.LastName AS OwnerName, 
    c.FirstName + space(1) + c.LastName AS GeneralManager 
FROM Store a 
LEFT JOIN Employee b ON a.OwnerID = b.EmployeeID 
LEFT JOIN Employee c ON a.GMID = c.EmployeeID

简单拆解下修改点:

  • 第一个LEFT JOIN:确保Store表中所有OwnerID为NULL的行都被保留,对应的OwnerName字段会显示为NULL
  • 第二个LEFT JOIN:同理,保留GMID为NULL的行,GeneralManager字段显示为NULL

这样修改后,就能完整返回你需要的所有行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:37:54