2016-10-18 20 views
0

2つの異なるカラムをチェックして同じテーブルからデータを取得する方法はありますか?ここで私は同じテーブルの異なるカラムからデータを取得するためのクエリ

Col.a Col.b Col.c 
----------------- 
X  Y  Z 
Y  X  Z 

あり3列col.a、col.bとcol.cがあり、そのうちのいくつかは、大佐ここの下に見られるようなレコードを持って以下のようにレコードを持つテーブルを有するサンプルですある行のcol = bであり、その逆の場合もあります。両方の行に共通のidだけがcol.cです...

この動作を示すすべての異なるcol.cidのリストを取得します。 。私は内部結合なぜ

+0

私は全くないんだけどあなたがしたいことを確かめてください。 col.cの値が特定の値であるcol.aとcol.bのすべての情報が必要な場合は、SELECT * FROMテーブルWHERE col.c = zを使用します。 INNER JOINはmltupleテーブル間でのみ動作します –

答えて

0

を提案してください内部結合を試みたが、役に立たない

でした助けになりませんか?

create table t_col (a varchar2(1),b varchar2(1),c varchar2(1)); 

insert into t_col (a,b,c) values('x','y','z'); 
insert into t_col (a,b,c) values('y','x','z'); 

select distinct col.c 
from t_col col 
join t_col col2 on Col.a = Col2.b and Col.b = col2.a and Col.c = Col2.c; 

または

select distinct col.c 
from t_col col 
where exists (select null 
       from t_col col2 
       where Col.a = Col2.b 
       and Col.b = col2.a 
       and Col.c = Col2.c); 

または我々はヌルに

select distinct col.c 
from t_col col 
where exists (select null 
       from t_col col2 
       where decode(Col.a,Col2.b,1,0) = 1 
       and decode(Col.b,col2.a,1,0) = 1 
       and decode(Col.c,Col2.c,1,0) = 1); 
+0

これはうまくいきました:) – user3696506

0

を確認したい場合、私は、これはあなたが探しているものだと思う:

SELECT DISTINCT c 
    FROM A 
    WHERE a IN (
      SELECT b 
      FROM A 
      ) 
関連する問題