2011-07-18 94 views
-1

我是新來的SQL,只是想知道如何才能從表中的值只有當它滿足一定的條件。SQL表搜索

我有一個表,如下所示(遺憾的垃圾格式)

COL1 - COL2 

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

我想從COL1獲取值,但只有當他們沒有在COL2一個特定的值。

因此,舉例來說,如果我不想在那裏COL2爲3,將來自COL1返回爲2。

感謝所有幫助

要澄清的唯一值,這兩個值列只存儲引用其他表的id。我只希望COL1中的值不引用COL2中的特定值。

所以當我看到我不希望COL2等於3的值時,這意味着COL1的值'1'將不會像第1行那樣返回。COL2是3和3不會返回從COL1,因爲在第4行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中只有一個對應值的記錄。 2-2是特定的,因爲它具有特定的值。從C組

選擇COL1通過COL1具有計數(COL2)> 1

上面的查詢給出了所有不具有一個特定值的col1值。