是否有可能在postgres 9.1中重叠选择重叠条款?

时间:2012-04-30 03:31:33

标签: postgresql postgresql-9.1

我的数据库结构如下:

我有具有课时的计划时间。每个计划时间都有一个与之关联的tclass,具有持续时间。我通常会使用某种类型的连接来获取持续时间,但是,因为我在postgres中使用重叠比较,所以我不确定这是否可行。查询看起来像这样......

Select (scheduletimes.classtime, scheduletimes.classtime + interval 
(select duration from tclasses where tclass.id = scheduletimes.tclass_id) minutes) OVERLAPS 
(06:50:00, 07:20:00) from schedules where
day = 1 and
schedule_id = 14;

1 个答案:

答案 0 :(得分:0)

您可以使用子查询,但在您的示例中,您将文字格式与列中的值混合,这将无效。通常最好JOIN而不是使用子查询,所以你可能想要这样的东西:

SELECT
    scheduletimes.*,
    (scheduletimes.classtime, scheduletimes.classtime
         + (interval '1 minute' * tclasses.duration))
       OVERLAPS (time '06:50:00', time '07:20:00')
  FROM scheduletimes
  JOIN tclasses ON tclasses.id = scheduletimes.tclass_id
  WHERE day = 1
    AND schedule_id = 14;