SQL更新列,包含来自另一个表的列的数据

时间:2015-09-03 12:38:56

标签: mysql sql

我有这三个表:

  1. 开发
  2. 应用
  3. ApplicationDevelopers(加入表)
  4. 我在两个表(开发人员和应用程序)中有一个公共属性/ ,称为 filter_settings

    我想使用连接表<从开发人员表中的匹配filter_seetings 列执行单个SQL命令,以更新 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'
    

3 个答案:

答案 0 :(得分:0)

从这个开始

Update Applications as app inner join Developers as dev on app.key_column=dev.key_column
set app.filter_settings=dev.filter_settings

答案 1 :(得分:0)

您想要更新表的所有记录。这里没有必要加入。

//$_POST["L_PAYMENTREQUEST_0_AMT0"] = $_POST["PAYMENTREQUEST_0_ITEMAMT"]; 

但是:应用程序和开发人员之间有一个桥接表。存在实现两者之间的n:m关系。因此:您要将哪些Developers.filter_settings复制到Applications记录?做出此决定,然后编写适当的查询。

以下是一个示例,只需采用最大filter_settings:

UPDATE applications
SET filter_settings = (<some query to get the value>);

答案 2 :(得分:0)

更新应用程序,开发人员设置applications.filter_settings = developers.filter_settings,其中applications.primaryKey = developers.foreignKey