【问题标题】:Update query with multiple tables doesn't work具有多个表的更新查询不起作用
【发布时间】:2018-08-23 12:02:11
【问题描述】:

我正在尝试用另一个表中的数据更新 MySQL 中的一个表。

UPDATE KassaticketRegels
SET soort = (SELECT t3.benaming 
         FROM KassaticketRegels AS t1 INNER JOIN Diensten AS t2 ON t1.dienst = t2.id INNER JOIN DienstGroepen AS t3 ON t2.dienstGroep = t3.id
        WHERE t1.id = KassaticketRegels.id)

当我模拟查询时,它给了我 304 个匹配的行。

但是当我按下 go 时,我收到错误“#1093 - 表 'KassaticketRegels' 被指定了两次,既作为 'UPDATE' 的目标,又作为数据的单独源”。

我该如何解决这个问题?

【问题讨论】:

  • 我认为您获取值的查询返回了不止一行,因此您收到了该错误。尝试添加...(选择 Top 1 ....)或 Disct,这样您就不会返回多行。您也可以尝试先将值放入变量然后进行更新

标签: mysql phpmyadmin


【解决方案1】:

查看您的代码似乎您需要更新内部连接

UPDATE KassaticketRegels t1
INNER JOIN Diensten AS t2 ON t1.dienst = t2.id 
INNER JOIN DienstGroepen AS t3 ON t2.dienstGroep = t3.id
set t1.soort = t3.benaming 

【讨论】:

    猜你喜欢
    • 2021-07-07
    • 2015-01-19
    • 2014-01-31
    • 2019-11-18
    • 2022-11-17
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多