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

SQLite对比两表筛选记录异常,如何筛选table1匹配table2最新开奖的数字

错误原因

你写的EXISTS子查询没有和外层table1的nums字段建立关联匹配规则,EXISTS关键字的判断逻辑仅为「子查询是否有返回结果」:你用到的子查询永远可以返回1行最新开奖号码的拼接字符串,所以WHERE EXISTS永远为真,返回table1全部记录;对应的NOT EXISTS永远为假,返回空结果。
另外你直接将单个数字类型的nums和拼接后的xx-xx-xx格式字符串做匹配,逻辑本身也不成立。

正确写法

需求1:筛选属于最新开奖号码的记录

写法1:IN子查询匹配(逻辑更直观)

SELECT nums FROM table1
WHERE nums IN (
  SELECT n1 FROM (SELECT n1,n2,n3, max(DRAWNUMBER) FROM table2)
  UNION ALL
  SELECT n2 FROM (SELECT n1,n2,n3, max(DRAWNUMBER) FROM table2)
  UNION ALL
  SELECT n3 FROM (SELECT n1,n2,n3, max(DRAWNUMBER) FROM table2)
)

写法2:字符串包含匹配(代码更简洁)

SELECT nums FROM table1
WHERE INSTR(
  (SELECT n1||'-'||n2||'-'||n3 FROM (SELECT n1,n2,n3, max(DRAWNUMBER) FROM table2)),
  CAST(nums AS TEXT)
) > 0

需求2:筛选不属于最新开奖号码的记录

仅需要把上述条件反向即可,以字符串匹配写法为例:

SELECT nums FROM table1
WHERE INSTR(
  (SELECT n1||'-'||n2||'-'||n3 FROM (SELECT n1,n2,n3, max(DRAWNUMBER) FROM table2)),
  CAST(nums AS TEXT)
) = 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:18:00