2015-11-30 60 views
-2

我有簡單的查詢,我使用IN關鍵字我只想顯示包含所有項目的行。SQL Server:在和條件

例子:我有兩個表1)視頻2)範疇

select Video.videoid, title, categoryid from Video join Category on Video.portalid=Category.portalid where Category.CategoryId in (1,2,3) 

該查詢返回所有具有類別ID 1或2或3等 的紀錄,但我想只顯示有行所有這三個值都是categoryId

我嘗試了其他方法,但是我還沒有成功。

+1

請提供的數據樣本和預期的結果 – Devart

+1

假設'categoryId'是'int'列 - 這怎麼可能1,2 * *和** 3在同一時間?你需要提供更多的信息 - 表結構,樣本數據等。 –

+0

我更新了信息,實際上我有兩個表視頻和類別。 – Rohit

回答

0

使用GROUP BYHAVING確保3個不同的分類。

select col1, col2, col3 
from table1 
where categoryid in (1,2,3) 
group by col1, col2, col3 
having count(distinct categoryid) = 3 

(將刪除重複的行,希望這不是一個問題。)