Ezt hogyan? SQL
Adott 2 tábla. Posztok és helyek.
Jelenleg 2 kéréssel működik a keresés:
SELECT longitude, latitude FROM locations WHERE zipcode = 1234
Majd még 1 select
SELECT name, (
6371 *
acos(cos(radians($lat)) *
cos(radians(latitude)) *
cos(radians(longitude) -
radians($lon)) +
sin(radians($lat)) *
sin(radians(latitude)))
) AS distance FROM posts WHERE name LIKE '%asd%' HAVING distance < 15
Nem lehetne ezt a kettőt egybe fűzni, és az első selectből kiszedett latitude és longitude értékekkel folytatná a kérést?





#18 > Hogy a rossebbe ne lenne hatékonyabb egy join egy descartes szorzatnál?!?
Az adatbáziskezelő optimalizál. Mivel a feltételek között van egy feltétel a zipcode-ra vonatkozóan, eleve a locations táblának csak azt az egy rekordos részhalmazát fogja belevenni a Descartes-szorzatba, amit kell. Innen nézve nem érzem úgy, hogy a JOIN szignifikánsan hatékonyabb lenne.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!