[英]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.