私は、乗客の識別情報、出発地と到着先の航空会社のテーブルを持っています。2つの列に渡って同一のペアを識別する
+-------------+-----------+----------+
| PassengerID | Town_from | Town_to |
+-------------+-----------+----------+
| 2 | Prague | Vienna |
| 2 | Vienna | Prague |
| 4 | Moscow | Helsinki |
| 4 | Helsinki | Moscow |
| 4 | Moscow | Helsinki |
+-------------+-----------+---------+
またはこのよう:
+-------------+
| PassengerID |
+-------------+
| 2 |
| 4 |
+-------------+
を
+-------------+-----------+----------+
| PassengerID | Town_from | Town_to |
+-------------+-----------+----------+
| 1 | London | Valetta |
| 1 | Valetta | London |
| 1 | Bangkok | Hanoi |
| 2 | Prague | Vienna |
| 2 | Vienna | Prague |
| 3 | Budapest | Vilnius |
| 4 | Moscow | Helsinki |
| 4 | Helsinki | Moscow |
| 4 | Moscow | Helsinki |
| 5 | Lyon | Paris |
| 5 | New York | Toronto |
+-------------+-----------+---------+
私は何をしたいの結果は次のようになりますので、そこに戻ってちょうど1つのルートをした乗客を見つけることです
なぜこの乗客ID:
1つの帰り旅行と1つのノンリターンがあるので、いいえ
2 - YESちょうど1対
3があるので - ( - 第VIIなく、第VII - バドバド)
4 - 復路がないので、NO 1対がまだあるので、YESであるが2件の以上の旅行
5 - NOこれらのペアへの帰り便
がないので、私のような何か試してみました:
SELECT PassengerID FROM table
GROUP BY PassengerID
HAVING COUNT(DISTINCT town_from) = 2 AND COUNT(DISTINCT town_to) = 2
をしかし、それは結果セットしても全くdiferent宛先(ID 5)が含まれています。グループ化している間に2つの列を比較する方法がわかりません。
はい、あなたは正しいですが、そのために申し訳ありませんが、私は質問を更新します。 私が解決する課題は、複数のトリップであっても、単一のfrom/toのペアを持つIDだけを必要とします。私はこの質問のデータを単純化し、これを忘れました。 – Musisak