2012-01-24 73 views
2

我如何聯合或連接或CTE 2種選擇,所以,我只能得到存在於兩個通用組,SQL Server

SELECT DISTINCT userid FROM ads WHERE status <> 'BASIC' 

結果比方說結果集是:1,2 ,3,4,5

SELECT DISTINCT userid FROM ads WHERE state = 'Alabama' 

假設的結果集是2,4,5,8,9

然後我想2,4和5

回答

3

這就是INTERSECT所做的。

我從查詢刪除DISTINCT因爲這是由INTERSECT在SQL Server(它沒有實現INTERSECT ALL)暗示

SELECT userid 
FROM ads 
WHERE status <> 'BASIC' 
INTERSECT 
SELECT userid 
FROM ads 
WHERE state = 'Alabama' 
+0

非常感謝。從來沒有聽說過那個,但我會說在許多情況下非常有用。我可以看到這裏還有一個'EXCEPT',我想這個例子會返回在阿拉巴馬州所有已經升級了廣告但沒有廣告的用戶ID – Jesper

+0

@Jesper - 是的。這是正確的。 –