Oracle从多个表中选择?

时间:2016-08-25 10:59:55

标签: sql oracle oracle-apex

我在Oracle中有多个表,主键和外键相互链接。表格是:

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

其余部分继续:RegionCityLocation。 可以看出,ID引用了另一个表。所以:

country_name"加拿大"参考文献sub_continent_id" A2"这是"北 美国&#34 ;. "北美"引用continent_id 2是"美洲"。

我想要尝试做的是运行一个SQL查询,如果我选择了一个位置,它应该返回其他表中的其余值。因此,如果我选择名为" Triange Building"的位置,它将自动返回:

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 个答案:

答案 0 :(得分: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;