繁体   English   中英

使用基于另一个表的条件更新一组列?

[英]Update a set of Columns with criteria based on another table?

我有两个桌子:

table_1-ControlID,代码,ReportedDate,FiledDate年龄,AgeCategory等,

table_2-ControlID,代码,ReportedDate,FiledDate等,

table_1 ControlID外键,在table_2中不是 我需要使用表_2中的ReportedDate更新表_1中的ReportedDate,并且Age和AgeCatogory已经计算出并且可以。

我想更新table_1中的三列,其中的ControlID,FiledDate和Code都相同。

现在,我已经:

UPDATE table_1 SET ReportedDate=table_2.ReportedDate, Age='<value>' AgeCategory='<value>'
         WHERE table_1.ControlID=table_2.ControlID AND
         table_1.FiledDate=table_2.FiledDate AND table_1.Code=table_2.Code

如果有人知道如何解决???

任何帮助,将不胜感激...

编辑:

我在'FROM ...'说MySQL语法错误时出错

UPDATE语法1内不允许使用FROM:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

如果您想从第二个表中获取内容,则可能要使用子查询。

试试这个代码:

UPDATE table_1 SET ReportedDate=
    (SELECT ReportedDate FROM table_2
      WHERE table_1.ControlID = table_2.ControlID
      AND table_1.Code = table_2.Code
    ), Age='<value>' AgeCategory='<value>'
    UPDATE table_1
    JOIN table_2 
    ON table_1.ControlID=table_2.ControlID
         AND table_1.FiledDate=table_2.FiledDate
         AND table_1.Code=table_2.Code
    SET table_1.ReportedDate=table_2.ReportedDate, 
         table_1.Age='<value>',
         table_1.AgeCategory='<value>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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