[英]SQL update column with data from another table's column
我有这三个表:
我在两个表(开发人员和应用程序)中有一个公共属性/列,称为filter_settings 。
我想执行一个 SQL 命令来使用连接表从 Developers 表中匹配的 filter_seetings列更新Applications 表中的filter_settings 。
这是我试图不提出问题的内容(在问题上做我的功课):
'UPDATE applications a INNER JOIN application_developers ad ON a.id = ad.application_id INNER JOIN developers d ON d.id = ad.id'
从这个开始
Update Applications as app inner join Developers as dev on app.key_column=dev.key_column
set app.filter_settings=dev.filter_settings
你想更新一个表的所有记录。 这里不需要加入。
UPDATE applications
SET filter_settings = (<some query to get the value>);
但是:应用程序和开发人员之间有一个桥接表。 它的存在是为了实现两者之间的 n:m 关系。 因此:您要将哪些 Developers.filter_settings 复制到应用程序记录? 做出这个决定,然后编写适当的查询。
这是一个示例,简单地采用最大 filter_settings:
update applications a
set filter_settings =
(
select max(d.filter_settings)
from developers d
join applicationdevelopers ad on ad.developer_id = d.id
where ad.application_id = a.id
);
更新应用程序,开发人员设置 applications.filter_settings=developers.filter_settings 其中 applications.primaryKey=developers.foreignKey
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.