我有一个sqlite数据库,其中有几个表,与此问题相关的是tweet_data和sentiment_t。
tweet_data包含大量关于单个tweet的数据,包括来自发送者的user_id和tweet id本身。Sentiment_t包含所有的tweet_id和与tweet_text相关的情感。
我想获得与单个用户相关的所有情感。为此,我编写了以下查询:
"
SELECT sentiment_c
FROM sentiment_t
WHERE sentiment_t.id = (SELECT id
FROM tweet_data
WHERE user_id = 1662186764);
"
我知道有15条推文与user_id 1662186764相关联,但是这个查询只返回第一个情感。
如何解决这个问题?
你所描述的我不确定你如何得到任何结果。我们开始吧
您在tweet_data
中有多个tweet,这意味着select id from tweet_data where user_id= 1662186764
将返回多个行。不能用=
比较多行。您需要使用IN
操作符。
所以正确的查询应该是这样的:
SELECT sentiment_c
FROM sentiment_t
WHERE sentiment_t.id IN (SELECT id
FROM tweet_data
WHERE user_id = 1662186764);
(=
与IN
交换运算符)