Mysql Sql根据来自另一个表的联接值更新表

Mysql Sql根据来自另一个表的联接值更新表,mysql,Mysql,基于此,此操作应该可以正常工作,但无法正常工作: UPDATE `cms_download` SET folder_id = '230' FROM `cms_download` file LEFT JOIN `cms_download_folder` folder ON file.folder_id = folder.folder_id WHERE file.client_id = '69' AND folder.folder_id = NULL 我拥有的是一个文件表(cms_downloa

基于此,此操作应该可以正常工作,但无法正常工作:

UPDATE `cms_download` 
SET folder_id = '230'
FROM `cms_download` file
LEFT JOIN `cms_download_folder` folder
ON file.folder_id = folder.folder_id
WHERE file.client_id = '69'
AND folder.folder_id = NULL
我拥有的是一个文件表(cms_download),其中包含一列,指向包含此文件的文件夹(cms_download_folder)。我要做的是将所有没有分配文件夹的文件设置为一个特定的文件夹。我可以知道,通过在文件夹id上向左或向右连接两个表,如果(cms_download_folder)表中的条目与(cms_download)表中的条目不存在,我将更改(cms_download)表中的文件夹id,以便它引用存在的条目

我希望我说的有道理

多亏了Gordon,我找到了正确的问题:

UPDATE  `cms_download` file 
LEFT JOIN  `cms_download_folder` folder 
ON file.folder_id = folder.folder_id 
SET file.folder_id =  '230' 
WHERE file.client_id =  '69' 
AND folder.folder_id = NULL

问题是您使用的是SQL Server语法,但您的帖子被标记为MySQL。在MySQL中,
join
位于
set
之前:

UPDATE `cms_download` file LEFT JOIN
       `cms_download_folder` folder
        ON file.folder_id = folder.folder_id
    SET folder_id = '230'
WHERE file.client_id = '69' AND folder.folder_id = NULL;

谢谢,不过如果是那样的话,我就不需要cms_下载文件中的
。我将在我的问题中写下最后一个查询,因为我无法在这里正确格式化它。@NaguibIhab。对的这是一个复制粘贴错误。