2011-07-18 14 views
-1

私はSQLを初めて使い、特定の条件を満たす場合にのみテーブルからどのように値を取得するのかと思っていました。SQLテーブルの検索

私は、次の(ごみの書式設定のため申し訳ありません)のように見えるテーブルを持っている

COL1 - COL2 

1 - 3 
1 - 2 
2 - 2 
3 - 3 
3 - 4 

私はCOL1から値を取得したいが、彼らはCOL2の特定の値を持っていない場合に限ります。

だから私はCOL2は3であった値を望まなかった場合は、たとえば、COL1から返される値のみを明確にするために任意のヘルプ

2.

おかげで、2になりますカラムには他のテーブルを参照するIDが格納されます。私は、COL2の特定の値を参照しないCOL1の値だけを必要とします。

私が見たところでは、COL2が3に等しい値を望まないのは、COL1からの値 '1'が行1で返されないことを意味します。COL2は3であり、3は返されませんCOL1はCOL2が3に等しいのでCOL2は3に等しい

+3

"たとえば、COL2の値が3でない場合、COL1から返される値は2になります。 - あなたが投稿したサンプルデータによるものではありません。 –

+1

2また、与えられた例では...行番号3 ... あなたの質問をチェックし、col1から1を望むかどうかを編集してください –

+2

あなたの質問はあなたが提供したサンプルデータ、したがってdownvoteでは意味をなさない。 – psynnott

答えて

3

あなたはこのようなものを探すと思います。

select COL1 
from TABLE_FOO 
where COL1 not in (
    select COL1 
    from TABLE_FOO 
    where COL2 = 3 
) 
+0

私はあなたがその質問が私たちに伝えるべきであったことを十分に賢い唯一の人だと思います)1 + – Jacob

+0

偉大な仕事...あなたの答えを見た後、それは何であるか明確です... :) –

+0

+1。偉大な推測! – niktrs

0

具体的な値は、col2に対応する値が1つしかないレコードを意味します。 2-2は特定の値を持つため、具体的です。 COL1有する数(COL2)により、C群から

選択COL1> 1

上記のクエリは、特定の値を持っていないすべてのCOL1値を与えます。