2016-08-25 2 views
1

안녕하세요, 모두오라클 복수 선택 테이블

나는 약간의 도움이 찾고있다. 오라클에는 기본 키와 외래 키가 서로 연결되어있는 여러 개의 테이블이 있습니다. 테이블은 다음과 같습니다 레이아웃이 각각의 방법의 예를 들어

Continent 
Sub-Continent 
Country 
Region 
City 
Location 

:

continent_id  | continent_name 
1     | Africa 
2     | America 

sub_continent_id | sub_continent_name | continent_id 
A1    | Southern Africa  | 1 
B1    | Western Africa  | 1 
A2    | North America  | 2 
B2    | South America  | 2 

country_id  | country_name  | sub_continent_id 
CAN    | Canada    | A2 
ZA    | South Africa  | A1 

이 나머지 계속 : Region, CityLocation. 볼 수 있듯이 ID는 다른 테이블을 참조합니다. 따라서 :

country_name "캐나다"는 " 미국"인 sub_continent_id "A2"를 나타냅니다. "북미"는 "미주"인 continent_id 2를 참조합니다.

내가 원하는 것은 SQL 쿼리를 실행하여 위치를 선택하면 다른 테이블의 나머지 값을 반환해야한다는 것입니다. 나는 "Triange 건물"이라는 위치를 선택한다면, 자동으로 반환합니다

Triangle Building, New York City, New York, North America, Americas 

내가 때마다 모든 값을 수집하기 위해 실행하는 쿼리 무엇인지 불확실입니다.

이처럼 단일 쿼리를 실행하여 지역 이름과 도시 이름을 표시 할 수 있지만 더 많은 테이블에서 더 많은 값을 선택하는 방법을 알지 못합니다.

SELECT E.city_name NAME,D.region_name DNAME 
FROM CITY E JOIN REGION D 
ON (E.region_id = D.region_id); 

미리 감사드립니다. 매우 바쁜 질문 인 경우 대단히 죄송합니다.

+1

가 그냥 다른로 시작하는 모든 테이블이 ON 절 후, 당신은 다른 사용할 수 E와 D가 있어야 너무 많은 – fbiagi

답변

0

그냥

SELECT E.city_name as NAME, D.region_name as DNAME, C.COUNTRY_NAME, SC.SUB_CONTINENT_NAME, 
     CO.CONTINENT_NAME 
FROM CITY E JOIN REGION  D ON E.region_id  = D.region_id 
      JOIN COUNTRY  C ON D.country_id  = C.country_id 
      JOIN SUB-CONTINENT SC ON C.sub_continent_id = SC.sub_continent_id 
      JOIN CONTINENT  CO ON SC.continent_id  = CO.continent_id; 
+1

감사 ON 가입 가입 가입 할 수 있습니다. 지금은 정말 바보 같아요, 그게 단순한 줄도 몰랐습니다. –

+1

@ user2082599 - 바보 같은 기분이 들지 마라. 완벽하게 합법적 인 질문과 문제를 설명하는 방법, 테이블이 서로 어떻게 관련되어 있는지, 일차 및 외래 키를 정확하게 사용하는 등 바보의 반대를 나타냅니다. – mathguy

+1

@ user2082599 매스가 맞습니다. 질문은 완벽하게 물었습니다. 평균 이상입니다. – vercelli