首页 > 解决方案 > 在 postgresql 中循环用户 ID 的数组

问题描述

我在 postgresql 数据库中有 2 个表:1 个带有用户信息(表:用户,字段:user_id,用户名,全名)和一个用户关系(表:关系,字段:relation_id,user_id_1,user_id_2)。

我有一个用户可以登录的网站。假设用户 ID = 1。我想要一个可以获取用户列表的页面,+ 他们的关系(关注者,关注者)。

目前,我这样做是这样的:

// fetch the user information of user 2
SELECT user_id, username, full_name FROM users WHERE user_id = 2;

// check if user 1 follows user 2
SELECT relation_id FROM relations WHERE user_id_1 = 1 AND user_id_2 = 2;

// check if user 2 follows user 1
SELECT relation_id FROM relations WHERE user_id_1 = 2 AND user_id_2 = 1;

问题是,在某些页面上,我有多个用户要获取和检查。每个用户现在需要 3 个查询,我想在 1 个查询中执行此操作(如果可能)。

假设我有以下数组:[2, 3, 4]。我想获取用户 2、3 和 4 的用户信息,并且我还想检查这些用户与用户 1 之间的关系(因为我以用户 1 身份登录)。

// select the user information
SELECT user_id, username, full_name FROM users WHERE user_id IN ([2,3,4]);

此查询应该获取用户信息,但我不知道如何遍历查询中的每个项目以检查数组中的用户与用户 1 之间的关系。

标签: node.jspostgresql

解决方案


推荐阅读