【发布时间】:2023-04-11 01:38:01
【问题描述】:
一些上下文:
我有两个表:challenges 和 participants。
challenges 表列:id、userId 和 name。
participants 表列:id、userId 和 challengeId
challenge 表中的userId 列表示挑战的所有权。
participants 表只是一个关联表,用于跟踪已加入挑战的用户。
challenges.hasMany(participants)
participants.belongsTo(challenges)
挑战的所有者可能是也可能不是参与者。
我的问题:
如何构建单个 Sequelize 查询来查找特定用户的所有拥有或加入的挑战?
示例数据:
challenges
+----+--------+-------------+
| id | userId | name |
+----+--------+-------------+
| 1 | 2001 | Challenge 1 |
| 2 | 2002 | Challenge 2 |
+----+--------+-------------+
participants
+----+--------+-------------+
| id | userId | challengeId |
+----+--------+-------------+
| 1 | 2001 | 1 |
| 2 | 2002 | 1 |
+----+--------+-------------+
查找用户2002的所有拥有或加入挑战的期望结果:
challenges: [
{
id: 1,
userId: 2001,
name: "Challenge 1"
},
{
id: 2,
userId: 2002,
name: "Challenge 2"
}
]
【问题讨论】:
-
为了让我了解您在寻找什么,您想要一份用户拥有的任何挑战的列表或他们参与的任何挑战?不一定是他们也是参与者的挑战列表?
-
是的,正确的。抱歉,如果这令人困惑。
标签: mysql database orm sequelize.js relational-database