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
               );