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

如何筛选无tokenRefNameID=4关联的tokenID?SQL查询求助

解决方案

有几种常用方法可以实现你要筛选完全未关联tokenRefNameID=4的tokenID的需求,以下是具体实现:

方法1:NOT EXISTS子查询

直接排除所有存在tokenRefNameID=4记录的tokenID,逻辑清晰且性能较好:

SELECT DISTINCT tokenID 
FROM tokenRefs t1
WHERE NOT EXISTS (
    SELECT 1 
    FROM tokenRefs t2
    WHERE t2.tokenID = t1.tokenID 
      AND t2.tokenRefNameID = 4
)

方法2:GROUP BY + HAVING统计

通过分组后统计关联tokenRefNameID=4的次数,筛选次数为0的tokenID:

SELECT tokenID
FROM tokenRefs
GROUP BY tokenID
HAVING SUM(CASE WHEN tokenRefNameID = 4 THEN 1 ELSE 0 END) = 0

方法3:NOT IN子查询

这种写法简洁,但需注意如果tokenID存在NULL值时可能出现异常:

SELECT DISTINCT tokenID
FROM tokenRefs
WHERE tokenID NOT IN (
    SELECT tokenID 
    FROM tokenRefs 
    WHERE tokenRefNameID = 4
)

针对你的示例数据验证

你的示例数据:

tokenIDtokenRefNameID
14
24
12

使用以上任意SQL,结果都会是空集——因为所有存在的tokenID(1和2)都关联过tokenRefNameID=4。如果新增一条tokenID=3、tokenRefNameID=5的记录,查询结果会返回3。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:37:03