mysql - 需要帮助构建奇怪的 Sequelize 查询

标签 mysql database orm sequelize.js relational-database

一些背景:
我有两个表: challengesparticipantschallenges 表列: iduserIdnameparticipants 表列: iduserIdchallengeIduserId 表上的 challenge 列指示挑战的所有权。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"
  }
]

最佳答案

试试这个:

SELECT challenges.* 
FROM challenges 
LEFT JOIN participants 
ON challenges.id = participants.challengeId 
WHERE challenges.userId = 2002 
OR participants.userId = 2002;

关于mysql - 需要帮助构建奇怪的 Sequelize 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68007677/

相关文章:

mysql - 如何从不同类别中获取交叉产品

c++ - MySQL 连接器 C++ - 无效指针

mysql - 多个网站和发票号码 - 数据库设计

sql - 如何在不影响原始数据库的情况下将现有备份从现有数据库还原到新数据库?

java - 在 Hibernate 中使用 JPA 注释来描述外键仅在子表中的 @OneToMany 关系

java - 尝试从java访问MySQL,但它不工作

mysql - 为什么 mysql 4 不遵守 --character_set_results 和 --default-character-set 命令参数?

database - 使用 DTS 时将 Access 查询转换为 SQL Server View

java - 如何为 CollectionOfElements 创建自定义查询

php - OneToMany 或 OneToOne,我走的路对还是错?