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) 要素の 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
; 

誰かがこれで私を助けてくれますか?

4

1 に答える 1