2017-06-21 64 views
-3

要求:需要弄清楚什麼LoginIDs Default設置爲1但不是0。規則是,所有LoginID可以有Default作爲01,但對於給定的LoginID必須至少有一個記錄0。如下面加入同一表

表:

LoginID Default 
A  0 
A  1 
A  1 
B  1 
B  1 
B  1 
B  1 
C  0 
D  0 
D  1 
E  0 
E  1 
E  1 
+1

能否請你解釋一下多一點或增加輸出示例? –

+1

我不認爲你需要爲此加入。 – Cheloide

回答

0

你可能會尋找一些簡單的,如:

SELECT DISTINCT LoginID 
    FROM yourtable 
WHERE Default = 1 
    AND LoginID NOT IN (SELECT LoginID FROM yourtable WHERE Default = 0) 
1

最簡單的方案是使用MINUS運算符。

select loginID from your_table where default = 1 
minus 
select loginID from your_table where default = 0 

這產生了一組具有的1一個default但沒有0登錄ID的。

1

我傾向於使用group byhaving接近這種類型的問題:

select loginID 
from t 
group by loginId 
having min(default) = 1;