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?
"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?"
De.
Bocs, utánanéztem, valóban használható így, azaz aliasra tudsz így szűrni, de ez nem szabványos sql szintaxis.
5ös voltam.
SELECT name, (
6371 *
acos(cos(radians(SELECT latitude FROM locations WHERE zipcode = 1234)) *
cos(radians(latitude)) *
cos(radians(longitude) -
radians(SELECT longitudeFROM locations WHERE zipcode = 1234)) +
sin(radians(SELECT latitude FROM locations WHERE zipcode = 1234)) *
sin(radians(latitude)))
) AS distance FROM posts WHERE name LIKE '%asd%' HAVING distance < 15
Ahhoz, hogy össze tudjuk kapcsolni a két táblát, kellenek azok a mezők, amik mentén össze tudjuk kapcsolni. A posts táblában van latitude és longitude mező? (Mert a második lekérdezés alapján úgy tűnik, hogy van, de kérdés, hogy az a lekérdezés amúgy jó-e. Meg a második lekérdezésben van egy $lat és egy $lon változónak tűnő valami, ami sejtésem szerint az első lekérdezésből jön, de ez még mindig csak sejtés.)
Ha megadod a két táblának a mezőit – vagy ami abból releváns –, akkor tudok segíteni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!