我尝试在 MySQL 查询中使用以下代码,但是当我尝试运行它时出现错误“Operation must use an updateable query”。但是,如果我创建另一个简单的更新查询(没有连接和子查询),它就可以正常工作。难倒在这一点上。有什么想法吗?
UPDATE IPad
SET Ipad.[case number] = (
SELECT ipad_damage_history.[case number]
FROM IPad
INNER JOIN ipad_damage_history ON IPad.[Apple ID] = ipad_damage_history.[Apple ID]
WHERE IPad.[case number] IS NULL
AND IPad.[Apple ID] = ipad_damage_history.[Apple ID]
)
WHERE Ipad.[Apple ID] = (
SELECT ipad_damage_history.[Apple ID]
FROM IPad
INNER JOIN ipad_damage_history ON IPad.[Apple ID] = ipad_damage_history.[Apple ID]
WHERE IPad.[case number] IS NULL
AND IPad.[Apple ID] = ipad_damage_history.[Apple ID]
);
最佳答案
标识符周围的 [] 是 SQL SERVER 的东西。在 mysql 中,您应该在多词列或保留关键字周围使用 `
。
而 mysql update 允许您直接进行内部连接:
UPDATE IPad
INNER JOIN ipad_damage_history
ON IPad.`Apple ID` = ipad_damage_history.`Apple ID`
SET Ipad.`case number` = ipad_damage_history.`case number`
WHERE IPad.`case number` IS NULL
AND IPad.`Apple ID` = ipad_damage_history.`Apple ID`
关于mysql - 尝试使用内部联接 (MySQL) 运行更新查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413680/