Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySql中使用子查询更新_Mysql_Sql Update - Fatal编程技术网

在MySql中使用子查询更新

在MySql中使用子查询更新,mysql,sql-update,Mysql,Sql Update,我有两张桌子: work (work_id (AI, PK), sent_date, received_date, visit_date) history_work(id_history_work (AI, PK), work_id (FK), sent_date, reseived_date, visit_date) 关系应该是1->n 我想更新工作表,以便发送日期、接收日期和访问日期应具有历史工作表中最后一条插入记录的值(最后一个id历史值)和相同的工作id值。您可以使用连接来完成此操作。

我有两张桌子:

work (work_id (AI, PK), sent_date, received_date, visit_date)
history_work(id_history_work (AI, PK), work_id (FK), sent_date, reseived_date, visit_date)
关系应该是1->n


我想更新工作表,以便发送日期、接收日期和访问日期应具有历史工作表中最后一条插入记录的值(最后一个id历史值)和相同的工作id值。

您可以使用
连接
来完成此操作。加入一次
历史记录
表。再次加入以获得最大id(可能是最近的插入)

update work w join
       history h
       on w.work_id = h.work_id join
       (select work_id, max(id_history_work) as maxihw
        from history
        group by work_id
       ) hw
       on hw.maxihw = h.id_work_history
    set w.sent_date = h.sent_date,
        w.received_date = h.received_date,
        w.visit_date = h.visit_date;