2016-06-06 4 views
0

У меня есть два таблиц БД в первом seminarsessions, есть:только первая дата начал и последнюю дату окончания

 id  | knowntime | 
    --------+--------------+ 
     1 | 1   | 
     2 | 0   | 
     3 | 1   | 

Во второй таблице seminarsessions_date есть такие timestamps с каждой date и datefrom и dateuntil на эту дату:

id | dateid | seminarsessionid | datefrom | dateuntil 
    --------+--------------+------+----------+---------- 
    1 | 312  | 3    |1462863600| 1462867200 
    2 | 123  | 3    |1450944000| 1451206800 
    3 | 543  | 3    |1464868800| 1464872400 

Как отобразить для each seminarsession с knowntime только firstдата от и lastdateuntil?

ответ

0

Вы можете сделать это, используя производную таблицу, которая содержит уже агрегированные значения из таблицы seminarsessions_date:

SELECT t1.id, t1.knowntime, t2.datefrom, t2.dateuntil 
FROM seminarsessions 
LEFT JOIN (
    SELECT seminarsessionid, 
      MIN(datefrom) AS datefrom, 
      MAX(dateuntil) AS dateuntil 
    FROM seminarsessions_date 
    GROUP BY seminarsessionid 
) AS t2 ON t1.id = t2.seminarsessionid 

Производная таблица t2 содержит первыйdatefrom и последнее значениеdateuntil за seminarsessionid.