2012-04-30 72 views
0

我的數據庫結構如下:是否可以在postgres 9.1中重疊子句中進行選擇?

我有安排時間,有班級時間。每個scheduletime都有一個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; 
+0

下一次,請儘量提供例如表,並採取更多的照顧在各具特色的示例查詢。你的表名在查詢的一部分與另一部分之間不匹配,並且你的時間文字的格式不正確,所以你給那些想要幫助你理清你的真正含義的人帶來了很大的負擔。 – kgrittn

回答

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; 
相關問題