我有两张桌子:
table_1 - ControlID,代码, ReportedDate,FiledDate Age, AgeCategory等,
table_2 - ControlID,代码, ReportedDate,FiledDate等,
ControlID
中的{p> table_1
外键而不在table_2 中。我需要使用table_2中的ReportedDate更新table_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
如果有人知道如何解决它?
Anyhelp将不胜感激......
编辑:
我收到错误,指出'FROM ...'
答案 0 :(得分:0)
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>'
答案 1 :(得分:0)
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>';