im trying build location based event search in php + mysql (using laravel , eloquent orm)
this query using:
select events.*, ( 3959 * acos( cos( radians(50.5) ) * cos( radians( addresses.latitude ) ) * cos( radians( addresses.longitude ) - radians(9.50) ) + sin( radians(50.5) ) * sin( radians( addresses.latitude ) ) ) ) distance `events` inner join `addresses` on `events`.`address_id` = `addresses`.`id` having `distance` <= 10 order `id` desc limit 15 offset 0 im wondering why error pops up, though distance column in "select statement".
"sqlstate[42s22]: column not found: 1054 unknown column 'distance' in 'having clause' (sql: select count(*) aggregate `events` inner join `addresses` on `events`.`address_id` = `addresses`.`id` having `distance` <= 10 order `id` desc)" this php code use add scope base query:
$selectdistance = '( 3959 * acos( cos( radians(' . $latitude . ') ) ' . '* cos( radians( addresses.latitude ) ) ' . '* cos( radians( addresses.longitude ) - radians(' . $longitude . ') ) ' . '+ sin( radians(' . $latitude . ') ) ' . '* sin( radians( addresses.latitude ) ) ) ) distance'; $query->select(db::raw('events.*, ' . $selectdistance)); $query->join('addresses', 'events.address_id', '=', 'addresses.id'); $query->having('distance', '<=', $km); thank :)
from error message:
"sqlstate[42s22]: column not found: 1054 unknown column 'distance' in 'having clause' (sql: select count(*) aggregate
eventsinner joinaddressesonevents.address_id=addresses.idhavingdistance<= 10 orderiddesc)"
we can following
sql:
select count(*) aggregate `events` inner join `addresses` on `events`.`address_id` = `addresses`.`id` having `distance` <= 10 order `id` desc distance not in select list.
Comments
Post a Comment