首页 > 解决方案 > 如何从我关注的所有人那里获取帖子?

问题描述

我正在使用 Postgresql 来存储我的数据。这是我存储任何用户发布的所有推文的表。推文存储在 json 数组中。

CREATE TABLE tweets (
    tweet_user_id UUID NOT NULL,
    user_tweets jsonb[]
);

在此表中,我存储了用户的所有关注者和关注者。

CREATE TABLE friends_details(
    user_id UUID,
    followers UUID[] DEFAULT '{}',
    following UUID[] DEFAULT '{}'
);

我用来从我关注的人那里获取所有帖子的查询是:-

SELECT user_tweets F
FROM tweets 
WHERE tweet_user_id IN (SELECT following FROM friends_details 
                        WHERE user_id = '$1' , [user_uid]);

但我收到此错误:-

运算符不存在:uuid = uuid[]

我如何解决此错误并从我关注的人那里获取所有帖子?

标签: node.jspostgresql

解决方案


您不能将标量和数组与=. 也许您正在寻找这个:

SELECT DISTINCT tweets.user_tweets F
FROM tweets
   JOIN friends_details ON tweets.tweet_user_id = ANY (friends_details.following)
WHERE friends_details.user_id = $1;

推荐阅读