我有一个关于更新 MySQL 数据库的问题。
我有三个表:Match、Submission 和 SubmissionVersion。 SubmissionVersion 可以设置为“Favorite”。但我不能只查询 UPDATE SubmissionVersion SET IsFavorite = 1 WHERE ID = $ID
因为与提交的关系而不是匹配。我的问题是如何使用具有两个连接的 MySQL 查询更新 SubmissionVersion 列?我试过这个查询,但我无法让它工作。
UPDATE
SubmissionVersion
JOIN
Submission
ON
Submission.ID, SubmissionVersion.SubmissionID
JOIN
Match
ON
Match.ID ON Submission.MatchID
SET
SubmissionVersion.IsFavorite = ".$Index."
WHERE
SubmissionVersion.ID = ".$ID."
AND
Match.ID = ".$MatchID
最佳答案
UPDATE SubmissionVersion sv
SET sv.IsFavorite = ".$Index."
WHERE sv.ID = ".$ID."
AND sv.ID IN (
SELECT s.ID
FROM Submission s
WHERE s.MatchID = ".$MatchID'")
如果我正确理解您的陈述,那应该可行。
我完全删除了 Match 表,因为您只是根据 Submission 中的一列检查值。
关于MySQL 根据多表更新一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3700236/