2013-11-22 2 views
2

Google Big Query에서 간격을 사용하여 두 개의 테이블을 결합하는 방법은 무엇입니까? 나는 각 차량 구글 빅 쿼리를 사용하여 통과하는 지역에서 확인이 테이블을 조인 교차하고 싶습니다간격을 사용하여 큰 쿼리에서 교차 조인하는 방법?

Table CarsGPS: 
ID | Car | Latitude | Longitude 
1 | 1 | -22.123 | -43.123 
2 | 1 | -22.234 | -43.234 
3 | 2 | -22.567 | -43.567 
4 | 2 | -22.678 | -43.678 
... 

Table Areas: 
ID | LatitudeMin | LatitudeMax | LongitudeMin | LongitudeMax 
1 | -22.124  | -22.120  | -43.124  | -43.120 
2 | -22.128  | -22.124  | -43.128  | -43.124 
... 

:

나는 두 개의 테이블이 있습니다.

SELECT A.ID, C.Car 
FROM Cars C, Areas A 
WHERE C.Latitude BETWEEN A.LatitudeMin AND A.LatitudeMax AND 
     C.Longitude BETWEEN A.LongitudeMin AND A.LongitudeMax 

을하지만 정확한 조인 된 테이블 사이에 일치 구글 빅 쿼리는 내가 사용하는 (심지어 각 가입) 조인 수행 할 수 있습니다

일반 SQL 서버에서 나는 만들 것입니다. 그리고 "FROM X, Y"는 UNION이 아니라 JOINS를 의미합니다.

다음
SELECT A.ID, C.Car 
FROM Cars C 
JOIN EACH 
    Areas A 
    ON C.Latitude BETWEEN A.LatitudeMin AND A.LatitudeMax AND 
    C.Longitude BETWEEN A.LongitudeMin AND A.LongitudeMax 

가 어떻게 각 영역 내에 통과하는 차량을 식별 할 비슷한을 실행할 수 있습니다

그래서,이 옵션을 선택하지 않습니다?

고맙습니다.

답변

2

BigQuery는 이제 CROSS JOIN을 지원합니다. 검색어는 다음과 같이 표시됩니다.

SELECT A.ID, C.Car 
FROM Cars C 
CROSS JOIN Areas A 
WHERE C.Latitude BETWEEN A.LatitudeMin AND A.LatitudeMax AND 
    C.Longitude BETWEEN A.LongitudeMin AND A.LongitudeMax 
+0

요르단,이 출시가 예상되는 모든 뉴스는 어떻게됩니까? –

+1

이 릴리스는 현재 게시 중입니다. 교차 결합이 작동해야합니다. –

+0

구문에 고유 한 것이 있습니까? 나는 여전히 "오류 : ON 절은 AND이어야하며 각 테이블의 한 필드 이름과 테이블 이름이 앞에 붙는 모든 필드 이름을 비교해야합니다" –

관련 문제