我有一张日志表,格式如下(包含样本数据):
我想要进行一次SQL查询,以便检索出如下格式的结果:
所以我想用左外连接来解决这个问题:
然而,这将导致以下结果:
顺便说一下,所使用的数据库是PostgreSql。
谢谢。
date | time
2010/01/02 | 10:00
2010/01/02 | 13:00
2010/01/04 | 02:34
我想要进行一次SQL查询,以便检索出如下格式的结果:
date1 | time1 | date2 | time2
2010/01/02 | 10:00 | 2010/01/02 | 13:00
2010/01/02 | 13:00 | 2010/01/04 | 02:34
2010/01/04 | 02:34 | <null> | <null>
所以我想用左外连接来解决这个问题:
SELECT
i.date as date1,
i.time as time1,
j.date as date2,
j.time as time2
FROM
log_table i
LEFT OUTER JOIN
log_table j
ON
i.id = j.id
AND (j.date > i.date
OR (j.date == i.date AND j.time > i.time))
然而,这将导致以下结果:
date1 | time1 | date2 | time2
2010/01/02 | 10:00 | 2010/01/02 | 13:00
2010/01/02 | 10:00 | 2010/01/04 | 02:34
2010/01/02 | 13:00 | 2010/01/04 | 02:34
2010/01/04 | 02:34 | <null> | <null>
顺便说一下,所使用的数据库是PostgreSql。
谢谢。
ON
子句之后缺少了WHERE
。 - Pentium10