我有关于更新MySQL数据库的问题。
我有三个表:Match,Submission和SubmissionVersion。 SubmissionVersion可以设置为“收藏夹”。但我不能只查询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
答案 0 :(得分:1)
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中检查列的值。
答案 1 :(得分:0)
让我们先说MATCH是MySQL的保留字,所以需要加入反引号。