2013-05-29 72 views
2

我有五個結果從表中檢索,我想寫一個存儲過程,將返回所有需要的行。如何在where子句中爲列添加多個條件?

我可以編寫查詢這樣的暫時:

Select * from Table where Id = 1 OR Id = 2 or Id = 3 

我認爲我需要得到的Id s到分割清單,但我怎麼寫WHERE條款?

+3

'where id in(...)'? –

回答

6

所以,如果你只是想學習SQL,這是一個很好的例子,以瞭解IN運算符。以下查詢與您的嘗試結果相同。

SELECT * 
FROM TABLE 
WHERE ID IN (SELECT ID FROM TALBE2) 

這意味着什麼是你的嘗試。從你的嘗試來看,這可能是你理解的最簡單的版本。雖然,在未來我會推薦使用JOIN

A JOIN與前面的代碼具有相同的功能,但將是一個更好的選擇。如果你是好奇閱讀更多有關JOINs,這裏是從最重要的來源

4

另一種方式來做到這幾個環節。 inner join將僅包含來自T1的行,與來自T2的行通過Id字段匹配。

select T1.* from T1 inner join T2 on T1.Id = T2.Id 

實際上,inner joins are usually preferable to subqueries由於性能原因。

+0

加入默認情況下比嵌套選擇更好。 – djechlin