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

SQL查询:筛选关联不存在Object记录的Problem数据

解决方案

要查询出关联Tasks指向的Object不存在于Objects表中的Problems数据,有两种常用的实现方式:

方法一:使用LEFT JOIN + IS NULL判断

SELECT DISTINCT p.*
FROM Problems p
INNER JOIN Tasks t ON p.TaskId = t.Id
LEFT JOIN Objects o ON t.objectID = o.Id
WHERE o.Id IS NULL
  • 逻辑说明:先通过INNER JOIN关联Problems和对应的Tasks,再用LEFT JOIN关联Tasks对应的Objects记录;如果关联后Objects的主键Id为NULL,说明该Tasks指向的Object在Objects表中不存在;DISTINCT用来避免同一个Problem因关联多个无效Tasks而重复输出。

方法二:使用NOT EXISTS子查询

SELECT p.*
FROM Problems p
WHERE EXISTS (
    SELECT 1
    FROM Tasks t
    WHERE t.Id = p.TaskId
    AND NOT EXISTS (
        SELECT 1
        FROM Objects o
        WHERE o.Id = t.objectID
    )
)
  • 逻辑说明:外层查询筛选存在符合条件Tasks的Problems——即该Tasks属于当前Problem,且该Tasks指向的Object在Objects表中不存在。这种写法无需去重,查询逻辑更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 03:27:06