Ezt hogyan? SQL

Figyelt kérdés

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?


2022. júl. 16. 17:55
1 2 3
 21/21 2*Sü ***** válasza:

#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.

2022. júl. 19. 14:01
Hasznos számodra ez a válasz?
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!