在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;