gpt4 book ai didi

mysql - Sql 根据另一个表的联接值更新表

转载 作者:行者123 更新时间:2023-11-29 12:34:58 24 4
gpt4 key购买 nike

基于此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 ) 表,以便它引用存在的条目。

我希望我说得有道理。

感谢戈登,我得到了正确的查询:

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;

关于mysql - Sql 根据另一个表的联接值更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26922166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com