0
我正在做一個數據庫課程,我有一個問題,我似乎無法得到正確的答案。顯示兩行相差一個值,但在其他方面相同
有3個表:
country(code, iso_abbreviation, name)
area(name, city, country_code, latitude, longitude, elevation)
attraction(name, type, city, country_name, latitude, longitude, elevation)
現在的問題問這樣的:區域均吸引力和區域表中找到。列表
(country_abbreviation, area_name, latitude, longitude, elevation)
適用於5000英尺高度以上的所有區域。由於該地區與吸引力數據之間可能存在不一致,因此緯度,經度和高度可能會有所不同。在這種情況下,顯示數據的兩種變體。
所以我想出了下面的查詢,但我不確定它是否正確配對,它也不會將數據分成兩行,其中一個(latitude, longitude, elevation
)元素是不同的。
SELECT country.iso_abbreviation as country_abbreviation, area.name as name,
area.latitude, area.longitude, area.elevation
FROM area JOIN country on country.code = area.country_code
JOIN attraction on area.name = attraction.name
WHERE area.elevation > 10000
UNION
SELECT DISTINCT country.iso_abbreviation as country_abbreviation, area.name,
attraction.latitude, attraction.longitude, attraction.elevation
FROM area JOIN country on country.code = area.state_code
JOIN attraction on area.name = attraction.name
WHERE attraction.elevation > 10000 ORDER BY country_abbreviation
;
有人能幫我解決這個問題嗎?
請把第二個,不相關的問題成爲一個單獨的問題。你可以隨時鏈接到這個上下文。至於你的主要問題:目前還不清楚。這些表格如何相關?請聲明主鍵和外鍵。添加您的Postgres版本。修復5000和10000之間的不匹配 –