私はデータベースのコースを受講していますが、正しい答えを得ることができないと思われる質問があります。
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
) 要素の 1 つが異なる 2 つの行にデータが分割されていません。
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
;
誰かがこれで私を助けてくれますか?