Hallo zusammen,
ich habe ein Problem zu der Sortierung von GROUP BY abfragen.
Die Ausgangssituation ist, dass ich zwei Tabellen für die Verwaltung von Ausbildungen habe. In meiner ersten Datenbank sind die angaben zu der Ausbildung hinterlegt(ID, Name, Laufzeit). In der zweiten Tabelle sind die Daten hinterlegt, wann ein User die Ausbildung gemacht hat und welche er gemacht hat(ID, Ausbildungs_ID, ZEIT, USER).
Ich verknüpfe nun die Tabellen, sodass ich einen Überblick habe, welche Ausbildungen von welchem User als nächstes erneuert werden müssen.
Nun folgt eine Zusammenführung der Zeit und der Laufzeit durch addieren in php.
Wenn ich mir das Ergebnis nun anzeigen lasse, zeigt mir das script aber immer die erste Durchführung der Ausbildung des nutzers an, welche er gemacht hat, jedoch nicht die letzte, welche ich benötige.
Als Beispiel:
[table="width: 500, class: grid"]
[tr]
[td]ID[/td]
[td]Name[/td]
[td]Laufzeit[/td]
[/tr]
[tr]
[td]1[/td]
[td]Ausbildung 1[/td]
[td]5[/td]
[/tr]
[tr]
[td]2[/td]
[td]Ausbildung 2[/td]
[td]2[/td]
[/tr]
[/table]
Und
[table="width: 500, class: grid"]
[tr]
[td]ID[/td]
[td]Ausbildungs_id[/td]
[td]Zeit[/td]
[td]User[/td]
[/tr]
[tr]
[td]1[/td]
[td]1[/td]
[td]1277935200[/td]
[td]1[/td]
[/tr]
[tr]
[td]2[/td]
[td]2[/td]
[td]1277935200[/td]
[td]2[/td]
[/tr]
[tr]
[td]3[/td]
[td]1[/td]
[td]1446593242[/td]
[td]1[/td]
[/tr]
[tr]
[td]4[/td]
[td]1[/td]
[td]1446593242[/td]
[td]2[/td]
[/tr]
[/table]
Dann ist das Momentane Ergebnis:
[table="width: 500, class: grid"]
[tr]
[td]Ausbildung[/td]
[td]User[/td]
[td]Zeit[/td]
[/tr]
[tr]
[td]Ausbildung 2[/td]
[td]2[/td]
[td]1277935200[/td]
[/tr]
[tr]
[td]Ausbildung 1[/td]
[td]1[/td]
[td]1277935200[/td]
[/tr]
[tr]
[td]Ausbildung 1[/td]
[td]2[/td]
[td]1446593242[/td]
[/tr]
[/table]
Anzeigen soll es aber
[table="width: 500, class: grid"]
[tr]
[td]Ausbildung[/td]
[td]User[/td]
[td]Zeit[/td]
[/tr]
[tr]
[td]Ausbildung 1[/td]
[td]1[/td]
[td]1446593242[/td]
[/tr]
[tr]
[td]Ausbildung 1[/td]
[td]2[/td]
[td]1446593242[/td]
[/tr]
[tr]
[td]Ausbildung 2[/td]
[td]2[/td]
[td]1277935200[/td]
[/tr]
[/table]
Ich hatte schon versucht, es mit einem subquery zu lösen, allerdings bin ich immer gescheitert, da nur Fehlermeldungen ausgegeben wurden.
Ein versuch mit MAX(e.zeit) half nichs, da hier nur noch gesamt 1 Eintrag für alle User ausgegeben wurde.
Ich hoffe, dass mir von euch jemand helfen kann.
ich habe ein Problem zu der Sortierung von GROUP BY abfragen.
Die Ausgangssituation ist, dass ich zwei Tabellen für die Verwaltung von Ausbildungen habe. In meiner ersten Datenbank sind die angaben zu der Ausbildung hinterlegt(ID, Name, Laufzeit). In der zweiten Tabelle sind die Daten hinterlegt, wann ein User die Ausbildung gemacht hat und welche er gemacht hat(ID, Ausbildungs_ID, ZEIT, USER).
Ich verknüpfe nun die Tabellen, sodass ich einen Überblick habe, welche Ausbildungen von welchem User als nächstes erneuert werden müssen.
Code:
$sort = mysql_query("SELECT a.id aid, a.laufzeit, e.ausbildungs_id, e.zeit ezeit, e.id eid FROM ausbildungen_allgemein a, ausbildungen_erneuern e WHERE a.id = e.ausbildungs_id GROUP BY aid, e.user ORDER BY e.zeit DESC");
Nun folgt eine Zusammenführung der Zeit und der Laufzeit durch addieren in php.
Wenn ich mir das Ergebnis nun anzeigen lasse, zeigt mir das script aber immer die erste Durchführung der Ausbildung des nutzers an, welche er gemacht hat, jedoch nicht die letzte, welche ich benötige.
Als Beispiel:
[table="width: 500, class: grid"]
[tr]
[td]ID[/td]
[td]Name[/td]
[td]Laufzeit[/td]
[/tr]
[tr]
[td]1[/td]
[td]Ausbildung 1[/td]
[td]5[/td]
[/tr]
[tr]
[td]2[/td]
[td]Ausbildung 2[/td]
[td]2[/td]
[/tr]
[/table]
Und
[table="width: 500, class: grid"]
[tr]
[td]ID[/td]
[td]Ausbildungs_id[/td]
[td]Zeit[/td]
[td]User[/td]
[/tr]
[tr]
[td]1[/td]
[td]1[/td]
[td]1277935200[/td]
[td]1[/td]
[/tr]
[tr]
[td]2[/td]
[td]2[/td]
[td]1277935200[/td]
[td]2[/td]
[/tr]
[tr]
[td]3[/td]
[td]1[/td]
[td]1446593242[/td]
[td]1[/td]
[/tr]
[tr]
[td]4[/td]
[td]1[/td]
[td]1446593242[/td]
[td]2[/td]
[/tr]
[/table]
Dann ist das Momentane Ergebnis:
[table="width: 500, class: grid"]
[tr]
[td]Ausbildung[/td]
[td]User[/td]
[td]Zeit[/td]
[/tr]
[tr]
[td]Ausbildung 2[/td]
[td]2[/td]
[td]1277935200[/td]
[/tr]
[tr]
[td]Ausbildung 1[/td]
[td]1[/td]
[td]1277935200[/td]
[/tr]
[tr]
[td]Ausbildung 1[/td]
[td]2[/td]
[td]1446593242[/td]
[/tr]
[/table]
Anzeigen soll es aber
[table="width: 500, class: grid"]
[tr]
[td]Ausbildung[/td]
[td]User[/td]
[td]Zeit[/td]
[/tr]
[tr]
[td]Ausbildung 1[/td]
[td]1[/td]
[td]1446593242[/td]
[/tr]
[tr]
[td]Ausbildung 1[/td]
[td]2[/td]
[td]1446593242[/td]
[/tr]
[tr]
[td]Ausbildung 2[/td]
[td]2[/td]
[td]1277935200[/td]
[/tr]
[/table]
Ich hatte schon versucht, es mit einem subquery zu lösen, allerdings bin ich immer gescheitert, da nur Fehlermeldungen ausgegeben wurden.
Ein versuch mit MAX(e.zeit) half nichs, da hier nur noch gesamt 1 Eintrag für alle User ausgegeben wurde.
Ich hoffe, dass mir von euch jemand helfen kann.