mysql - MySQL - 内部联接不适用于更新语句
问题描述
我有下面的查询不起作用,我不知道为什么,因为它似乎与其他类似的查询一起使用。你能告诉我哪里出错了吗?
UPDATE `Student`
SET Student.Half = 0
FROM `Student`
INNER JOIN `Year`
on Student.GradYear = Year.GradYear
and Year.UserID = 1
它应该将表和 Half 更新为 0,但它会出现错误消息“#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的语法以在 'FROM 附近使用Student.GradYear 上的Student
INNER JOIN Year
= Year.GradYear 和 Ye' 在第 3 行"
解决方案
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET assignment_list
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
value:
{expr | DEFAULT}
assignment:
col_name = value
assignment_list:
assignment [, assignment] ...
根据 MySQL 文档,您的语法本身是错误的 https://dev.mysql.com/doc/refman/8.0/en/update.html
UPDATE `Student`
INNER JOIN `Year`
on Student.GradYear = Year.GradYear
and Year.UserID = 1
SET Student.Half = 0;
^这应该工作。
推荐阅读
- javascript - Navigo.js 仅适用于本地主机
- python - Python:如何反转字符串的多个切片操作
- node.js - node-libxml-xsd 在进行 node-gyp 重建时失败,并显示“...xmljs.node:文件无法识别:文件格式无法识别”
- html - justify-content: flex-start 不工作
- ios - Xcode 错误(无法创建配置文件)
- javascript - 在矩阵中寻找邻居并将其存储
- javascript - 无法在 python Jupyter 笔记本中合并 d3
- python - 将我自己的文件命名为与模块相同的名称后无法导入 Python 模块
- php - Laravel 5.5 通过 gmail 发送电子邮件,从数据库配置
- c++ - 在代码中读取 FILEVERSION 值