2016-06-03 12 views
0

Meine Tabelle das ist wie mit ::Fetch nächsten Wert/Zeile einer Spalte mehrere Zeilen in mysql

+-------+-----------------+---+ 
id  | created    | 
+-------+-----------------+---+ 
| 2sdv | 2016-05-18 14:08:14 | 
| 2sdv | 2016-05-18 14:25:22 | 
| 2sdv | 2016-05-18 14:26:01 | 
| 2sdv | 2016-05-19 07:19:13 | 
+-------+---------------------+ 

Lässt diese id sagen = ‚2sdv‘ an diesen Tagen erstellt ich die ouput möchte wie sein diese

+-------+-----------------+---+------+-----------------+ 
id  | created   | new_date 
+-------+-----------------+---+------+-----------------+ 
| 2sdv | 2016-05-18 14:08:14 | 2016-05-18 14:25:22 | 
| 2sdv | 2016-05-18 14:25:22 | 2016-05-18 14:26:01 | 
| 2sdv | 2016-05-18 14:26:01 | 2016-05-19 07:19:13 | 
| 2sdv | 2016-05-19 07:19:13 | 
+-------+---------------------+------+-----------------+ 

in Oracle können wir lead() Funktion benutzen, aber ich möchte, dass meine Abfrage in MySQL sein. Wie kann ich den nächsten Wert der erstellten Datumsspalte in einer neuen Spalte in mehreren Zeilen abrufen.

+0

Ihre Frage ist nicht ganz klar. – e4c5

+0

Sie möchten, dass das Mindest-y-Datum größer als das entsprechende x-Datum ist. Weil Sie auch das späteste x-Datum wollen, wäre dies ein LINKER JOIN – Strawberry

+0

Ihre ID würde einzigartig oder gleich sein ?? –

Antwort

1

Per meinen Kommentar oben ...

SELECT x.* 
    , MIN(y.created) new_date -- the minimum y date... 
    FROM my_table x 
    LEFT 
    JOIN my_table y 
    ON y.id = x.id 
    AND y.created > x.created -- ... greater than the corresponding x date 
GROUP 
    BY x.id 
    , x.created; 
Verwandte Themen