gpt4 book ai didi

mysql - 如何将表内的属性引用到同一表内新行内的值

转载 作者:行者123 更新时间:2023-11-29 15:44:36 25 4
gpt4 key购买 nike

我正在尝试创建一个表来保存许多运动员的历史运行时间(以分钟为单位)。该表包含人员姓名的外键,并存储他们的新运行时间和先前的运行时间以及执行运行的日期。

我试图将运行者的所有记录保存在同一个表中。我想在新的运行时间完成时在新条目中引用旧的运行时间。我正在努力思考这种关系将如何运作。

下表解释了我想要实现的目标。

<小时/>

|名称_ID {FK}|完成日期|新时间|旧时间|

| 001| 16/02/2019 | 123 | 123 108 |

| 001| 16/03/2019 | 136 | 136 123 |

如表所示,2019 年 2 月 16 日的新平均值显示为 2019 年 3 月 16 日的旧平均值。

我的问题是如何构建这种关系?是否有可能建立这种关系?

或者

有没有更有效的方法?即有下表:

<小时/>

|名称_ID {FK}|完成日期|新时间|

| 001| 16/02/2019 | 123 |

| 001| 16/03/2019 | 136 |

并创建一个查询,该查询可以使用 Name_ID 和completion_Date 属性来生成输出:

<小时/>

|名称_ID {FK}|完成日期|新时间|旧时间|

| 001| 16/02/2019 | 123 | 123 108 |

任何帮助将不胜感激。

最佳答案

如果您没有 Mysql 8.x 服务器,您可以使用它。

CREATE TABLE table1
(`Name_ID {FK}` int, `Completion_Date` varchar(10), `New_Time` int)
;

INSERT INTO table1
(`Name_ID {FK}`, `Completion_Date`, `New_Time`)
VALUES
(001, '16/01/2019', 108),
(001, '16/02/2019', 123),
(001, '16/03/2019', 136)
;

你可以使用这个

select  `Name_ID {FK}`,`Completion_Date`,@quot old_time, @quot:=`New_Time` new_time
from table1 p,(SELECT @quot := 0) r
order by `Name_ID {FK}`,`Completion_Date`;

获得此结果:

Name_ID {FK}    Completion_Date     old_time    new_time
1 16/01/2019 0 108
1 16/02/2019 108 123
1 16/03/2019 123 136

正是基于此 Simulate lag function in MySQL

关于mysql - 如何将表内的属性引用到同一表内新行内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57208634/

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