Hallo zusammen,
ich stehe vor einem Problem. Ich will aus der MySQL Datenbank alle Parkplätze (Beispiel) innerhalb von 15 miles anhand meiner aktuellen Koordinaten ausfindig machen.
Dies geht am besten so:
Nun mein Problem ist es, dass ich die Koordinaten des Parkplatzes nicht unter "carpark" gespeichert habe, sondern in einer anderen Tabelle "location". Unter "carpark" ist nur "location_id" statt "long" und "lat". In der location Tabelle wiederum gibt es die Spalten "id", "long", "lat", "zipcode", ...
Es muss irgendwie also erst einmal ein Join gemacht werden um die "Location"'s zu holen und anschliessend wird anhand der Location Id's die ganzen Parkplätze geholt. Wie kann ich das in einer SQL Abfrage? Ich will nicht die Koordinaten doppelt speichern, in dem sie auch noch bei "carpark" zu finden sind. Das wichtigste von allen ist, die SQL Frage. Denn unter carpark sind insgesamt sehr sehr viele Datensätze. Das könnte irgendwann > 1 000 000 sein. Natürlich werde ich einen Limit auf maximal 1000 setzen je Abfrage.
ich stehe vor einem Problem. Ich will aus der MySQL Datenbank alle Parkplätze (Beispiel) innerhalb von 15 miles anhand meiner aktuellen Koordinaten ausfindig machen.
Code:
// Beispiel
string(11) "51.22774110"
string(10) "6.77345560"
Code:
SELECT , (3959 acos(cos(radians('".$lat."')) cos(radians(lat)) cos( radians(long) - radians('".$lng."')) + sin(radians('".$lat."')) *
sin(radians(lat))))
AS distance
FROM carpark WHERE distance < 15 ORDER BY distance
Es muss irgendwie also erst einmal ein Join gemacht werden um die "Location"'s zu holen und anschliessend wird anhand der Location Id's die ganzen Parkplätze geholt. Wie kann ich das in einer SQL Abfrage? Ich will nicht die Koordinaten doppelt speichern, in dem sie auch noch bei "carpark" zu finden sind. Das wichtigste von allen ist, die SQL Frage. Denn unter carpark sind insgesamt sehr sehr viele Datensätze. Das könnte irgendwann > 1 000 000 sein. Natürlich werde ich einen Limit auf maximal 1000 setzen je Abfrage.