Aktives Mitglied
Hallo,
ich habe eine Tabelle in meiner DB, in der mehrere Filialen samt der Koordinaten für den Standort gelistet sind. Jetzt bin ich dabei eine Abfrage zu bauen, die anhand der eingegebenen Koordinaten die jeweils nächste Filiale eines Unternehmens ausliest. Die Abfrage sieht verkürzt so aus:
Das Problem ist jetzt, dass hier von einem Unternehmen mehrere Filialen auftauchen können. Ich will aber von den 5 Unternehmen, nur die jeweils nächste Filiale. Wenn ich die Abfrage um einen "GROUP BY unternehmen" erweitere, bekomme ich aber nicht mehr die Filiale mit dem geringsten Abstand.
Mir fällt jetzt aber nur folgende Umgehungslösung ein:
Alle Unternehmen in der DB gelistet sind abfragen, sodass ich eine Liste mit den IDs der Unternehmen habe. Danach für jede ID die Abfrage durchführen:
Kann ich das alles aber auch irgendwie in eine Abfrage zusammenfassen? Ich stehe da auf dem Schlauch ... (fraglich ist natürlich auch, ob eine "komplizierte" Abfrage schneller ist als mehrere einfache ... Aber das muss man einfach mal testen ).
Danke schon mal für eure Hilfe!
ich habe eine Tabelle in meiner DB, in der mehrere Filialen samt der Koordinaten für den Standort gelistet sind. Jetzt bin ich dabei eine Abfrage zu bauen, die anhand der eingegebenen Koordinaten die jeweils nächste Filiale eines Unternehmens ausliest. Die Abfrage sieht verkürzt so aus:
Code:
SELECT unternehmen, filiale, (BERECHNUNG) AS distance FROM Filialen ORDER BY distance ASC
Mir fällt jetzt aber nur folgende Umgehungslösung ein:
Alle Unternehmen in der DB gelistet sind abfragen, sodass ich eine Liste mit den IDs der Unternehmen habe. Danach für jede ID die Abfrage durchführen:
Code:
SELECT unternehmen, filiale, (BERECHNUNG) AS distance FROM Filialen WHERE unternehmen = ID ORDER BY distance ASC LIMIT 1
Danke schon mal für eure Hilfe!