node.js - 在 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 之间的关系。
解决方案
推荐阅读
- java - CachedRowSet 分页和连接池
- c++ - 可以在 C++ 中使用子类名来引用方法吗?
- c# - 浮点 Equals 和 C# 中的等式运算符 (==) 有什么区别?
- javascript - 期望的数字,得到字符串
- android - Android导航组件:根据存储库参数跳过片段
- powershell - 识别使用 PowerShell Gallery API 密钥和上次访问时间的应用程序
- python - 在 Python 中创建类包装器
- java - 无法找到在 Spring Kafka 中使用一批消息处理恢复的正确方法
- azure-devops - Azure Devops ad hoc 计划 YAML 发布
- excel - VBA遍历范围并排序到单独的电子表格