我有五个要从表中检索的结果,我想编写一个将返回所有所需行的存储过程。
我可以暂时这样写查询:
Select * from Table where Id = 1 OR Id = 2 or Id = 3
我想我需要收到一个Id
要拆分的 s 列表,但是我该如何编写WHERE
子句?
我有五个要从表中检索的结果,我想编写一个将返回所有所需行的存储过程。
我可以暂时这样写查询:
Select * from Table where Id = 1 OR Id = 2 or Id = 3
我想我需要收到一个Id
要拆分的 s 列表,但是我该如何编写WHERE
子句?
因此,如果您只是想学习 SQL,这是一个了解IN
运算符的简短而好的示例。以下查询与您的尝试具有相同的结果。
SELECT *
FROM TABLE
WHERE ID IN (SELECT ID FROM TALBE2)
这转化为您的尝试。从您的尝试来看,这可能是您理解的最简单的版本。虽然,将来我会推荐使用JOIN
.
AJOIN
与前面的代码具有相同的功能,但将是一个更好的选择。如果您想了解更多信息JOINs
,这里有一些来自最重要来源的链接
另一种方法。将仅包括 T1 中通过该字段inner join
与 T2 中的行匹配的行。Id
select T1.* from T1 inner join T2 on T1.Id = T2.Id
实际上,出于性能原因,内部连接通常比子查询更可取。