Mysql 我正在尝试使用join with update query,但找不到问题
请帮助我更正语法Mysql 我正在尝试使用join with update query,但找不到问题,mysql,database,join,sql-update,Mysql,Database,Join,Sql Update,请帮助我更正语法 UPDATE user_shift_test SET shifttime='01:00-21:00' FROM user_shift_test INNER JOIN swaps ON user_shift_test.userid=swaps.csrid WHERE user_shift_test.userid=5 我发现了这个错误 1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 近
UPDATE
user_shift_test
SET
shifttime='01:00-21:00'
FROM
user_shift_test
INNER JOIN swaps
ON
user_shift_test.userid=swaps.csrid
WHERE
user_shift_test.userid=5
我发现了这个错误
1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法
近“来自用户\u shift\u test在用户\u shift\u test.useri上的内部连接交换”
在5号线
试试这个:
UPDATE user_shift_test
INNER JOIN swaps
ON user_shift_test.userid=swaps.csrid and user_shift_test.userid=5
SET shifttime='01:00-21:00'
(我假设您正在尝试使用连接执行更新查询)这应该可以做到
UPDATE user_shift_test
FROM user_shift_test
SET shifttime='01:00-21:00'
WHERE user_shift_test.userid=5
INNER JOIN swaps
ON user_shift_test.userid=swaps.csrid
您需要一个SELECT来决定在user\u shift\u测试中更新哪些行。正确的语法是UPDATE/SET/WHERE。您编写的SQL无效,正如消息告诉您的。您正在更新的列类似于“user\u shift\u test\u date”。因为“user\u shift\u test”是表名而不是列名。Set应始终位于on子句之后和where conditionThank dude life savior:PI未否决的位置之前。我刚出现。在使用联接模式进行更新时,集合排在最后。应该解释这个答案。请解释您的答案,问题中的查询有什么问题?SQL语法用于检查和检查文档的语法是否正确。。。。
UPDATE user_shift_test
SET shifttime='01:00-21:00'
WHERE userid IN
(SELECT user_shift_test.userid
FROM user_shift_test
JOIN swaps ON swaps.csrid=user_shift_test.userid
WHERE
user_shift_test.userid=5
);