0
이 쿼리를 laravel 호환 쿼리로 하루 종일 변환하려고했습니다. 쿼리에서 AS를 사용하는 데 대한 정보를 찾을 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 여기 이 복잡한 쿼리를 ORM 또는 Laravel 쿼리 작성기로 변환
SELECT zipcode, city, state, lat, lng, distance_in_mi
FROM (
SELECT zipcode, city, state, lat, lng, r, (3963.17 * ACOS(COS(RADIANS(latpoint)) * COS( RADIANS(lat)) * COS(RADIANS(longpoint) - RADIANS(lng)) + SIN(RADIANS(latpoint)) * SIN(RADIANS(lat)))) AS distance_in_mi
FROM zipcode
JOIN (
SELECT $current_lat AS latpoint, $current_lng AS longpoint, 10 AS r
) AS p
WHERE lat
BETWEEN latpoint - (r /69)
AND latpoint + (r /69)
AND lng
BETWEEN longpoint - (r/(69 * COS(RADIANS(latpoint))))
AND longpoint + (r/(69 * COS(RADIANS(latpoint))))
) d
WHERE distance_in_mi <= r
ORDER BY distance_in_mi
는 내가 지금까지 무엇을 가지고 :
$data_object = DB::table('zipcode', function($query)
{
$query->select('zipcode, city, state, lat, lng, r, (3963.17 * ACOS(COS(RADIANS(latpoint)) * COS(RADIANS(lat)) * COS(RADIANS(longpoint) - RADIANS(lng)) + SIN(RADIANS(latpoint)) * SIN(RADIANS(lat)))) AS distance_in_mi')
->from('zipcode')
->join('zipcode', function($query1)
{
$query1->select("($current_lat AS latpoint, $current_lng AS longpoint, 10 AS r) AS p")
->whereBetween('lat', 'latpoint - (r /69)')
->whereBetween('lng', 'longpoint - (r/(69 * COS(RADIANS(latpoint)))) AND longpoint + (r/(69 * COS(RADIANS(latpoint))))');
});
})
->where('distance_in_mi', '<=', 'r')
->orderBy('distance_in_mi')
->get();
지금까지 해보신 것은 무엇입니까? 설명서를 살펴보십시오. http://laravel.com/docs/queries – Perry
그래, 이제 문서를 열어 보겠습니다. laravel의 쿼리 빌더에서 AS를 처리하는 방법을 알아야합니다. 문서에서 찾을 수 없습니다. –