【问题标题】:SQL query syntax error, UPDATE statement with INNER JOINSQL 查询语法错误,带有 INNER JOIN 的 UPDATE 语句
【发布时间】:2018-07-09 06:51:06
【问题描述】:

我的问题应该很容易解决,但我找不到我的数据库接口向我抛出的语法错误。以下代码用于更新timetrackingtool中现有用户的密码。

我检查了所有的表和字段名,它们都是正确的。

SQL查询代码:

$query = ('UPDATE tblMitarbeiterUUID SET tblMitarbeiterUUID.dtPassword="' . $pwd . '" '.
          'INNER JOIN arbeiter '.
          'ON tblMitarbeiterUUID.idMitarbeiterUUID=arbeiter.fidMitarbeiterUUID ' .
          'WHERE arbeiter.id=' . $userID)

这个查询的回声:

UPDATE tblMitarbeiterUUID SET tblMitarbeiterUUID.dtPassword="7687225fde7aad38f4c005ad4b5cdd5a" INNER JOIN arbeiter ON tblMitarbeiterUUID.idMitarbeiterUUID=arbeiter.fidMitarbeiterUUID WHERE arbeiter.id=1

尝试直接在数据库上运行查询时出现错误:

SQL 错误 (1064):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“FROM tblMitarbeiterUUID INNER JOIN arbeiter ON tblMitarbeiterUUID.ifMitarbeiterUUID=arbeiter.fidMitar...”附近使用正确的语法

在我的研究中,我看到一些人在 UPDATE 声明中使用 FROMINNER JOIN。我用FROM 尝试过,但我得到了与上面相同的错误。

提前感谢您的帮助。最好的问候,卢卡。

正确的语法(在我得到正确答案后编辑):

'UPDATE tblMitarbeiterUUID x '.
'JOIN arbeiter y ON x.idMitarbeiterUUID = y.fidMitarbeiterUUID ' .
'SET x.dtPassword="' . $pwd . '" ' .
'WHERE y.id=' . $userID

【问题讨论】:

  • 还要注意你对 sql 注入持开放态度

标签: mysql sql syntax syntax-error inner-join


【解决方案1】:

这是有效的语法:

UPDATE tblMitarbeiterUUID x

JOIN arbeiter y
ON x.idMitarbeiterUUID = y.fidMitarbeiterUUID 

SET x.dtPassword="A"  

WHERE y.id=1

【讨论】:

  • 非常感谢,这是我正在寻找的答案。
猜你喜欢
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 2023-02-15
相关资源
最近更新 更多