繁体   English   中英

使用另一个表的列中的数据更新 SQL 列

[英]SQL update column with data from another table's column

我有这三个表:

  1. 开发商
  2. 应用
  3. ApplicationDevelopers(连接表)

我在两个表(开发人员和应用程序)中有一个公共属性/,称为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM