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

如何在SQL Server连接查询中返回不匹配的结果?附示例代码

在SQL Server中获取连接查询的不匹配结果

没问题,针对你要找出两个表连接后不匹配记录的需求,结合你提供的表结构和数据,我给你两种实用的解决方案:

方法1:使用RIGHT JOIN + 过滤NULL值

这是基于你现有查询思路的完整实现,通过RIGHT JOIN关联两个表,然后筛选出Figure表中无匹配的记录(也就是Figure表字段为NULL的行):

SELECT o.*, f.MonthNumber AS Figure_Month, f.Code AS Figure_Code, f.Figure AS Figure_Value
FROM Figure f
RIGHT JOIN Other o 
    ON f.MonthNumber = o.MonthNumber 
    AND f.Code = o.Code
WHERE f.Code IS NULL;

逻辑说明:

  • RIGHT JOIN会保留Other表的所有记录,匹配Figure表中相同MonthNumber和Code的行
  • WHERE f.Code IS NULL过滤掉两个表匹配成功的记录,剩下的就是Other表独有的、Figure表中没有对应匹配的行

执行结果:

运行后会返回Other表中这3条不匹配的记录:

MonthNumberCodeFigureFigure_MonthFigure_CodeFigure_Value
4K40NULLNULLNULL
3D20NULLNULLNULL
2J25NULLNULLNULL

方法2:使用NOT EXISTS(推荐,性能更优)

如果你只需要Other表中的不匹配记录,用NOT EXISTS的写法逻辑更清晰,在大数据量下性能通常更好:

SELECT *
FROM Other o
WHERE NOT EXISTS (
    SELECT 1
    FROM Figure f
    WHERE f.MonthNumber = o.MonthNumber 
      AND f.Code = o.Code
);

逻辑说明:

直接从Other表筛选出那些**在Figure表中找不到相同MonthNumber和Code**的记录,结果和方法1一致,但写法更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:59:36