多套条件

时间:2019-05-02 21:42:22

标签: sql postgresql

我想在与以下任何 sets 条件匹配的表上运行查询:

SELECT
id,
time
FROM
TABLE
WHERE
<condition1 is True> OR,
<condition2 is True> OR,
<condition3 is True> OR,
...

每种情况可能看起来像:

id = 'id1' AND t > 20 AND t < 40

每个WHERE条件(上面的id2040)中的值都是熊猫数据框中的行-长2万行。我看到两个在技术上可行的选项:

  • 对数据库进行20k次查询,每个条件查询一次,并合并结果
  • 如上所述生成(很长)查询并提交

我的问题:实现此目标的惯用/高效方法是什么? 我怀疑以上两种都不是合适的方法,这个问题在Google上有点难。

1 个答案:

答案 0 :(得分:0)

我认为最好创建一个具有列id,t1和t2的临时表,并将其中的2万行放入其中。然后只需加入此临时表:

SELECT DISTINCT TABLE.id, time
FROM TABLE 
JOIN TEMP_TABLE T2 ON
TABLE.ID = T2.ID AND TABLE.T > T1 AND TABLE.T < T2;