Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie verweise ich ein Attribut in einer Tabelle auf einen Wert in einer neuen Zeile in derselben Tabelle?

Wenn Sie keinen Mysql 8.x Server haben, können Sie diesen verwenden.

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

Und Sie können dies verwenden

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

um dieses Ergebnis zu erhalten:

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

Es basiert auf dieser Verzögerungsfunktion in MySQL simulieren