MySQL und Joins

mathiu

Erfahrenes Mitglied
Ich habe eine Tabelle 1 mit einigen Werten, entscheidend sind die "aid" und die "bid"
Diese beiden ID's sind in zwei weiteren Tabellen auch vorhanden.

Tabelle1:
test_id
aid
bid
....

Tabelle2:
aid
name
...

Tabelle3:
bid
name


Ich möchte nun eine sortierte Liste (sortier nach den namen der Tabellen 2-3) aller Einträg in Tabelle1.

mit
Code:
 select c.last_name,b.last_name FROM tabelle1 as a LEFT JOIN tabelle2 b ON a.aid=b.aid LEFT JOIN tabelle3 as c ON c.bid=a.bid;

erreich ich, dass mir alle Namen angezeigt werden, jeweils mit NULL in der Spalte der anderen Tabelle, was ich auch erwartet habe.
Nur bringt mich das irgendwie nicht weiter, was die Sortierung anbelangt..

Kann mir da jemand weiterhelfen?
 
Vielleicht so (ungetestet)?

select * from tabelle1, tabelle2, tabelle3 where tabelle1.aid=tabelle2.aid and tabelle1.bid=tabelle3.bid order by tabelle2.name, tabelle3.name
 
Das bringt mich leider nicht weiter, da so erst nach allen Namen der ersten, danach nach allen Namen der zweiten sortiert wird.
 
Und wenn Du die selektierten Daten in eine temporäre Tabelle speicherst und dann nochmals nach Namen sortiert ausliest?

Oder Du liest die Daten aus (z. B. via PHP) und sortierst sie dann nochmal?

redlama
 
Die Variante mit PHP wäre natürlich eine Möglichkeit und auch kein Problem.

Wie stellst du dir denn das mit einer temporären Tabelle vor?
 
Zurück