基于此post,这应该可行,但它无法正常工作:
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中的folder_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
答案 0 :(得分:1)
问题是您使用的是SQL Server语法,但您的帖子标记为MySQL。 join
在MySQL的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;