Ich möchte aus einer MySQL-Abfrage, diese Art von Ergebnis erhalten:Mysql Abfrage mit mehreren LEFT JOIN Ausgabe
Name | Gestelltes Datum | Verabschiedet Datum | Dauer
Joe | 2016-07-01 10:02:01 | 2016-07-01 10:02:05 | 10
Ben | 2016-07-01 10:04:24 | 2016-07-01 10:04:26 | 12
....
Alle Einträge werden in einer Tabelle gespeichert, die wie folgt aussehen:
id | action_date | action_type | unique_instance | name
12 | 2016-07-01 10:02:01 | Asked | 6546532161654 | Joe
13 | 2016-07-01 10:02:06 | Granted | 6546532161654 | Joe
14 | 2016-07-01 10:05:12 | Asked | 6546532161654 | Ben
15 | 2016-07-01 10:05:15 | Granted | 6546532161654 | Ben
16 | 2016-07-01 10:06:06 | Finished | 6546532161654 | Joe
Ich habe versucht, diese Abfrage zu tun, aber es hat nicht funktioniert:
Select table.name as Name,
table.action_date as Asked,
g.action_date as Granted,
TIMESTAMPDIFF(SECOND, g.action_date, q.action_date) as Duration
FROM table
LEFT JOIN table g ON table.unique_instance = g.unique_instance AND g.action_type = 'Granted'
LEFT JOIN table q ON table.unique_instance = q.unique_instance AND q.action_type = 'Finished'
WHERE table.action_type = 'Asked'
AND table.unique_instance = '6546532161654'
GROUP BY table.action_date;
Es sieht so aus, als sollte es funktionieren ... können Sie Ihren Beitrag bearbeiten und Details anzeigen: Wählen Sie * aus der Tabelle wo unique_instance = '6546532161654'. Nur um die tatsächlichen Datensätze in der Datenbank zu bestätigen. – DRapp
Korrigieren Sie mich, wenn ich falsch liege, aber wenn Sie die gleiche Tabelle 3 Mal verwenden, müssen Sie einen Alias für alle 3 von ihnen nicht nur die 2. – apokryfos
@ DRapp, es ist fertig, @ apokryfos, weiß ich nicht: ( –