我在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
其余部分继续:Region
,City
和Location
。
可以看出,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);
答案 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;