【问题标题】:How to select between with values from other table in PostgreSQL?如何在 PostgreSQL 中其他表的值之间进行选择?
【发布时间】:2016-10-09 18:27:02
【问题描述】:

我有两个查询:

  1. Select * from table1 where my_value between value1 and value2;
  2. 从table2中选择value1、value2;

table2 中的 value1 和 value2 的集合是唯一的。 如何在第一个查询的 where 语句中插入查询 2 的所有结果集?

Resolved: Using exists key:
select *
from t1
where exists
(
    select *
    from t2
    where t1.my_value between t2.value1 and t2.value2
);

【问题讨论】:

    标签: sql postgresql between


    【解决方案1】:

    你可以加入两个表:

    SELECT t1.*
    FROM   t1
    JOIN   t2 ON t1.myvalue BETWEEN t2.value1 AND t2.value2
    

    【讨论】:

    • 它会复制结果行,但是,当范围可以重叠时,例如我的值 = 3; t2 记录#1 = 1->4; t2 记录 #2 = 2->5.
    【解决方案2】:

    由于您希望表 1 中的记录存在在表 2 中匹配,EXISTS 似乎直截了当:

    select *
    from t1
    where exists
    (
      select *
      from t2
      where t1.my_value between t2.value1 and t2.value2
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 2021-07-15
      相关资源
      最近更新 更多