Sortieren über 2 Tabellen
Elya
- datenbank
Hallo Forum,
Wir haben in einer php/mySQL-Anwendung eine Listenausgabe
name | plz | filiale | timestamp ...
Diese Daten kommen aus 2 Tabellen:
namensliste - hier steht als Fremdschlüssel die ID der Filiale drin
filialadressen - hier stehen alle angaben zur filiale drin, z.B. auch plz
Es gibt also mehrere Mitarbeiter pro Filiale. Jetzt soll nach o.g. Feldern sortiert werden. "name" - kein Problem. Bei "plz" und "filiale" geht's los, da in der Tabelle filialadressen keine zuordnung "name" drinsteht, logisch.
Da die Abrage einigermaßen performanceschonend sein soll, haben wir die Idee "schreiben in temporäre Tabelle" erst mal verworfen. Ich habe das Gefühl, es gibt dazu eine einfache Lösung, weiß aber nicht recht, wonach ich suchen soll.
Hat jemand einen Tipp für mich?
Schöne Grüße aus Köln-Ehrenfeld,
Elya
Hi,
Ich habe das Gefühl, es gibt dazu eine einfache Lösung, weiß aber nicht recht, wonach ich suchen soll.
ich hingegen weiß nicht, _warum_ man suchen soll. Du sortierst schließlich keine Tabelle, sondern eine Ergebnisliste - nämlich die selektierten Daten. Und dazu ist die ORDER BY Klausel da.
Cheatah
Hallo Cheatah,
OK, hilf mir bitte auf die Sprünge... ;-)
Aufgabe: sortiere nach plz
Also Tabelle "filialadressen", ORDER BY "plz", soweit klar.
Zu der Filiale ist aber kein Name zugeordnet.
2. Abfrage wäre dann aus "namensliste" ORDER BY "name" oder "id" oder ...?
Aber wie krieg ich das zusammen? Damit dann in der Ausgabe steht
plz filiale name
10000 hh anton
10000 hh berta
50000 koeln alberta
50000 koeln jupp
...
Mag sein daß ich gerade auf der Leitung stehe, aber ich krieg's nicht hin.
Schöne Grüße aus Köln-Ehrenfeld,
Elya
Hi,
Also Tabelle "filialadressen", ORDER BY "plz", soweit klar.
nein. Welche Tabelle im Spiel ist, ist irrelevant.
Du hast ein SELECT-Statement, mit dem Du irgendwelche Daten von irgendwoher liest. Die Ergebnismenge dieses Statements kann auch eine "plz"-Spalte irgendeiner Tabelle beinhalten, oder eine solche Spalte durch Berechnungen erzeugen, oder eine andere Spalte als "plz" benennen, oder was auch immer. Am Ende hat diese Ergebnismenge jedenfalls eine Spalte namens "plz" - und nach der sortierst Du. That's it.
- Abfrage wäre dann
Du hast keine zweite Abfrage. Wenn doch, ändere das.
Cheatah
Hallo Cheatah,
jetzt hab ichs, es lag in der Tat in der Art der Abfrage. Das hier hat mir gefehlt:
WHERE tabellenname1.id_filiale = tabellenname2.id_filiale
Dann klappt's auch mit dem Sortieren...
Danke + schöne Grüße aus Köln-Ehrenfeld,
Elya