gpt4 book ai didi

mysql - 如何使用 MySQL 中最新关联记录的 id 更新外键

转载 作者:行者123 更新时间:2023-11-30 01:01:43 24 4
gpt4 key购买 nike

从具有相同 user_id 的条目生成支票表上的 latest_entry_id 的最高效方法是什么,且最新的 start_date 早于支票的 create_date?

之前:

检查表

id        |   user_id |  create_date |  latest_entry_id  
------------------------------------------------------
1 | 1 | 2012-01-01 | NULL
2 | 2 | 2012-01-01 | NULL

条目表

id         |   user_id |  start_date 
-------------------------------------
1 | 1 | 2012-02-01
2 | 1 | 2011-01-01
3 | 2 | 2011-09-01
4 | 2 | 2011-10-01

之后:

检查表

id        |   user_id |  create_date |  latest_entry_id  
------------------------------------------------------
1 | 1 | 2012-01-01 | 2
2 | 2 | 2012-01-01 | 4

最佳答案

我认为这可以让它发挥作用:

UPDATE checks c
INNER JOIN (
SELECT e.user_id,
MAX(e.id) AS ID
FROM entries e
INNER JOIN checks c1 ON e.user_id = c1.user_id
AND e.start_date < c1.create_date
GROUP BY e.user_id
) a ON a.user_id = c.user_id
SET c.latest_entry_id = a.id;

sqlfiddle demo

附:您的预期结果中的第二行与您的要求不一致。 latest_entry_id 应该是 4,而不是 3。

关于mysql - 如何使用 MySQL 中最新关联记录的 id 更新外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com