2013-05-29 46 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