2017-08-20 3 views
0

私はバスの詳細のテーブルを持っています。 これにはbus_name、bus_source、およびbus_destinationがあります。 どのバスペアで帰国が可能かを知る必要があります。例えば、 。これを表示する方法:行ペア - 列1行の値が2行目の列bにあり、列2の値が1行目の列bのoracleにありますか?

bus_name | bus_source | bus_destination 
    a  | Chennai | Bangalore 
    b  | Bangalore | Chennai 
+3

に行く

bus_name | bus_source | bus_destination a | Chennai | Bangalore b | Bangalore | Chennai c | Mumbai | Chennai 

は、私は、これは期待しています。何かを試してください。 – Strawberry

+0

何かを計画しましたか?いくつかの実験をしましたか?あなたがした場合、結果を印刷できますか? StackOverflowでは、質問を投稿するときに、あなたが解決しようと努力したことを示すことが重要です。 – alepuzio

+0

あなたのデータでは、bus_sourceとbus_destinationの組み合わせはすべて一度だけ現れますか?チェンナイからバンガロールまでは6種類のバス(別名)があり、バンガロールからチェンナイまでは8つの異なるバスがあるかもしれませんが、どのようにそれらを往復の旅に組み合わせる予定ですか?あなたは出発時刻と到着時刻も持っていないので、有効な組み合わせの数を減らすことができます(ユニークなペアリングのロジックを作成するためにおそらく使用できます)。 – mathguy

答えて

2

使用EXISTS()

SELECT * FROM YourTable t 
WHERE EXISTS(SELECT 1 FROM YourTable s 
      WHERE t.bus_source = s.bus_destination 
       AND t.bus_destination = s.bus_source); 
+0

しかし...問題文は、往復の旅を構成するバスのペアを識別することです。あなたの質問はそれをしません。 – mathguy

+0

それはなぜですか? :S @mathguy – sagi

+0

これは、何かのペアを特定するものではないためです。それは対になることができるバスしか見つけられませんが、実際に対になっていません。テーブルのすべてのバスが往復のペアの一部であったと想像してください。あなたの出力は、どのバスペアがどのバスペアになっているかを知らずに、単に開始テーブルになります。 – mathguy

関連する問題