mysql - 尝试使用内部联接 (MySQL) 运行更新查询时出错

标签 mysql

我尝试在 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/

相关文章:

mysql - 如何创建一个可以将外键值从表 B 插入到表 A 的触发器

php - 防止 mysql_result($sql_result, 0) 抛出错误

mysql - 如何在mysql查询中执行循环?

mysql - 键值存储上的关系类型操作

php - 根据 PHP/CodeIgniter 中的变量从 MySQL 表中选择特定字段

php - 如何统计mysql中的唯一记录

php - 日常风采网站

php - 使用while循环向mysql数据库表中插入多个数据

php - 将一个结果中的多个数组合并到 PHP 中的单个数组中

PHP - 上传CSV文件并导入到数据库,其中表不存在