2014-04-15 3 views
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(); 
+0

지금까지 해보신 것은 무엇입니까? 설명서를 살펴보십시오. http://laravel.com/docs/queries – Perry

+0

그래, 이제 문서를 열어 보겠습니다. laravel의 쿼리 빌더에서 AS를 처리하는 방법을 알아야합니다. 문서에서 찾을 수 없습니다. –

답변

1

this question

그리고 답변에 따라 :

Laravel은 AS와 테이블과 컬럼에 별명을 지원합니다. 시도해보십시오.

$users = DB::table('really_long_table_name AS t') 
      ->select('t.id AS uid') 
      ->get(); 

이에 따라 쿼리를 만들고 선택 항목 또는 테이블에 AS를 넣을 수 있습니다.

+0

내가 겪은 것처럼 보입니다. 나는 그것이 내렸을 때 내 쿼리를 게시 할 것이다. 나는 내 질문을 일할 때까지 이것을 닫고 싶지 않다. –

관련 문제