【发布时间】:2016-05-19 15:24:56
【问题描述】:
我有来自外部数据库的带有 id 的本地数据。然后我想使用这些 id 从该外部数据库中选择数据,所以我执行以下操作:
SELECT * FROM table WHERE id IN (:listofids)
但是我注意到(我不确定它是否是 DB by DB 设置或 DB 类型或什么)在该 IN 语句中可以有一个最大数量的值。如果可能,我当然会使用WHERE id IN (SELECT id FROM ...),但有时使用外部数据是不可能的。
我的问题:
- 除了我在上面所做的之外,我还有哪些选择?
- 最大项目的限制是否设置在 DB 级别,DB 的类型,什么?现在我特别关注外部 RedShift DB,但我查看了他们的文档,他们没有提到限制。我们本地数据库的限制为 2100,但我使用的另一个数据库是 9999。此外,一旦列表变大,它可能会变慢,所以我也在寻找性能提升。
- 我应该这样做
in () OR in () OR in()。这似乎不太光滑。所有这些选项都可行吗? - 我已经阅读了一些关于可能使用临时表来执行此操作的信息,但没有任何示例。如何将数据加载到临时表中,然后加入我想要从中获取数据的表中?
【问题讨论】:
标签: sql amazon-redshift in-clause