从第二个表MySQL中的两个表和两个不同列中删除数据



我正在构建一个端点,在这里我可以删除用户及其所有关系。表关系如下所示:

| id  | followerId | followedId | createdAt           | updatedAt           |
+-----+------------+------------+---------------------+---------------------+
| 188 |         10 |         19 | 2021-02-22 00:00:00 | 2021-02-22 00:00:00 |
| 189 |         10 |         22 | 2021-02-22 00:00:00 | 2021-02-22 00:00:00 |
| 190 |         10 |         23 | 2021-02-22 00:00:00 | 2021-02-22 00:00:00 |
| 197 |         10 |         12 | 2021-03-11 00:00:00 | 2021-03-11 00:00:00 |
| 199 |         19 |         10 | 2021-03-11 00:00:00 | 2021-03-11 00:00:00 |

我已经构建了以下端点,它运行良好,直到我出现内部错误,并意识到如果Id不在两列中,我就会出现内部服务器错误(followerId和followedId(:

routes.delete("/profile/:id/edit/delete", (req, res) => {
let { id } = req.params

db(`
DELETE user
, follow
, following
FROM user
JOIN relationships as follow
ON follow.followerId = user.id
JOIN relationships as following
ON following.followedId = user.id
WHERE user.id = ${id}
`)
.then((results) => {
res.send({ message: "user deleted" })
})
.catch(err => res.status(500).send(err))
})

如果id只在一列中,是否可以删除该用户?例如,如果我想删除Id为22的用户

如果您设置了带有外键约束的关系表,并在followerId上设置了DELETE_CASCADE,则简单的用户删除查询将删除关系表中所有关联的条目。

最新更新