0

出発地と目的地の都市があり、外国の ID として表されるフライトの表があります。

このテーブルの非常に単純化された例は次のようになります。

id | origin | destination
023      1        3
044      3        2
332      2        1
509      1        3
493      1        4

都市が出発地または目的地として最初に表示される時間を取得する必要があります。まだ出発または出発していない都市を含むすべてのフライトのリスト。

上記の例で取得したいのは次のとおりです。

023: 1, 3
044: 2 
493: 4

フライト 332 と 509 は、既に訪問した都市のみを訪問するため、出力には含まれません。

これが私が試したことです:

(SELECT distinct(origin), distinct(destination) FROM flights ORDER BY id)

複数の異なる列を選択できないため、機能しません

SELECT (distinct(origin) FROM flights ORDER BY id) UNION (distinct (destination) FROM flights ORDER BY id)

構文エラーが原因で機能しませんが、主な理由は、出発地と目的地の列で都市が一意である必要があることを考慮していないためです。

SQL でこれを行う簡単な方法がない場合は、繰り返し処理して、訪問した都市を追跡することもできます (このアプリには文字通り 1 人のユーザーがいて、数ミリ秒の計算は気にしません。なぜなら、彼は 80 歳を超えていますが、SQL についてもっと学べるように知りたいです。

4

1 に答える 1