Hallo zusammen,
auch wenn es so aussieht, als ob es viele Lösungen zu diesem Problem im Forum gäbe, so habe ich noch keine wirklich Lösung für mein Problem gefunden. Falls hier doch bereits eine gepostet worden sein sollte, bitte ich schon jetzt um Vergebung.
Ich habe folgendes Problem:
2 Tabellen mit einer 1:n Beziehung.
Tabelle 1 hat diese Felder:
a_index
a_titel
a_user
Tabelle 2 hat diese Felder:
b_index
b_index_a
b_text
b_zeit
Jeder Eintrag in Tabelle 1 hat keinen, einen oder mehrere ihm zugeordnete Einträge in Tabelle 2. Dabei sind die Einträge in Tabelle 2 über das Feld b_index_a mit den Einträgen der Tabelle 1 verknüpft.
Ich möchte nun eine Abfrage, die es mir ermöglicht, NUR alle Einträge aus A anzuzeigen und zu sortieren. Die Sortierung bereitet mir nun Kopfschmerzen, denn die Einträge sollen so sortiert sein, dass diejenigen zu denen es die neuesten Einträge in Tabelle B gibt ganz oben stehen.
Ich habe folgenden SQL-String gebastelt:
SELECT tab_1.*,tab_2.* FROM tab_1 RIGHT JOIN tab_2 ON tab_1.a_index = b_index_a ORDER BY b_zeit DESC
Der hat jedoch das Problem, dass er für jeden einzelnen Datensatz in B den zugehörigen Stammdatensatz aus A schreibt.
Der Einsatz von GROUP BY a_index vor dem ORDER BY bringt leider auch nichts, da greift dann das ORDER BY nicht mehr.
Kann mir evtl jemand einen besseren Vorschlag machen?
Herzlichen Dank im Voraus!
MfG
Mike
auch wenn es so aussieht, als ob es viele Lösungen zu diesem Problem im Forum gäbe, so habe ich noch keine wirklich Lösung für mein Problem gefunden. Falls hier doch bereits eine gepostet worden sein sollte, bitte ich schon jetzt um Vergebung.
Ich habe folgendes Problem:
2 Tabellen mit einer 1:n Beziehung.
Tabelle 1 hat diese Felder:
a_index
a_titel
a_user
Tabelle 2 hat diese Felder:
b_index
b_index_a
b_text
b_zeit
Jeder Eintrag in Tabelle 1 hat keinen, einen oder mehrere ihm zugeordnete Einträge in Tabelle 2. Dabei sind die Einträge in Tabelle 2 über das Feld b_index_a mit den Einträgen der Tabelle 1 verknüpft.
Ich möchte nun eine Abfrage, die es mir ermöglicht, NUR alle Einträge aus A anzuzeigen und zu sortieren. Die Sortierung bereitet mir nun Kopfschmerzen, denn die Einträge sollen so sortiert sein, dass diejenigen zu denen es die neuesten Einträge in Tabelle B gibt ganz oben stehen.
Ich habe folgenden SQL-String gebastelt:
SELECT tab_1.*,tab_2.* FROM tab_1 RIGHT JOIN tab_2 ON tab_1.a_index = b_index_a ORDER BY b_zeit DESC
Der hat jedoch das Problem, dass er für jeden einzelnen Datensatz in B den zugehörigen Stammdatensatz aus A schreibt.
Der Einsatz von GROUP BY a_index vor dem ORDER BY bringt leider auch nichts, da greift dann das ORDER BY nicht mehr.
Kann mir evtl jemand einen besseren Vorschlag machen?
Herzlichen Dank im Voraus!
MfG
Mike
Kommentar