我在第一个seminarsessions中有两个数据库表,有:

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


在第二个表seminarsessions_date中,每个timestamps都有date,并且该日期还有datefromdateuntil

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


如何仅以each datefrom和first dateuntil的已知时间显示last研讨会?

最佳答案

您可以使用包含表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值。

10-07 18:01