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

SQLite子查询仅返回首条结果 如何获取全部匹配记录

故障原因

查询仅返回单条结果的核心问题是使用了=运算符匹配子查询结果:当子查询返回该用户对应的15条推文id(多行结果集)时,=的等值判断只会取结果集的第一行做匹配,因此只能得到第一条推文对应的情感值。
额外注意:你描述表结构时提到sentiment_t存储推文关联id的字段为tweet_id,编写查询时请确认实际关联字段名,不要误用字段导致匹配错误。

修复方法

方法1:最小改动,替换运算符

将=替换为IN运算符即可,IN专门用于判断值是否存在于多行结果集合中,修改后SQL如下:

SELECT sentiment_c
FROM sentiment_t
WHERE sentiment_t.tweet_id IN ( -- 若sentiment_t关联推文的字段名确实为id,此处替换为id即可
    SELECT id
    FROM tweet_data
    WHERE user_id = 1662186764
);

方法2:JOIN关联查询(推荐写法)

使用内关联的写法逻辑更直观,后续需要同时拉取推文内容、发布时间等跨表字段时扩展更方便,写法如下:

SELECT s.sentiment_c
FROM sentiment_t s
INNER JOIN tweet_data t
ON s.tweet_id = t.id -- 关联字段请和实际表结构保持一致
WHERE t.user_id = 1662186764;

两种写法执行效果完全一致,都会返回目标用户关联的全部15条推文对应的情感值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:12:28