查找多个已知ID项的备用SQL方法?

Ale*_*sen 13 sql

是否有更好的解决方案来查找表中多个已知ID的问题:

SELECT * FROM some_table WHERE id='1001' OR id='2002' OR id='3003' OR ...
Run Code Online (Sandbox Code Playgroud)

我可以有几百个已知物品.想法?

Eoi*_*ell 23

SELECT * FROM some_table WHERE ID IN ('1001', '1002', '1003')
Run Code Online (Sandbox Code Playgroud)

如果您的已知ID来自另一个表

SELECT * FROM some_table WHERE ID IN (
    SELECT KnownID FROM some_other_table WHERE someCondition 
)
Run Code Online (Sandbox Code Playgroud)


Joe*_*orn 8

第一个(天真)选项:

SELECT * FROM some_table WHERE id IN ('1001', '2002', '3003' ... )
Run Code Online (Sandbox Code Playgroud)

但是,我们应该能够做得更好. IN当你有很多物品时,你会非常糟糕,并且你提到了数百个这些ID.是什么造就了他们 他们来自哪里?你能写一个返回这个列表的查询吗?如果是这样:

SELECT *
FROM some_table 
INNER JOIN ( your query here) filter ON some_table.id=filter.id
Run Code Online (Sandbox Code Playgroud)