Mysql队列开始/结束时间

时间:2011-11-08 12:10:23

标签: mysql time queue

我有一个我无法解决的问题。

我有2张桌子。

表1:

ID | Time
1  | 08:12:54
2  | 08:15:40
3  | 09:30:01
4  | 10:15:15
5  | 10:56:12
6  | 11:00:03

表2:

ID | Name| Previous | Current
1  | Queue | null | 11
2  | Queue | 11 | 19
3  | Queue | 19 | 11
3  | List | null | 11
4  | Queue | 11 | 16
4  | List | null | 11
5  | Queue | null | 15
6  | Queue | 15 | 19

结果想要:

NumberQueue | Start | End
11 | 08:12:54 | 08:15:40
19 | 08:15:40 | 09:30:01
11 | 09:30:01 | 10:15:15
15 | 10:56:12 | 11:00:03
...
...

前一个和当前字段具有Queue的编号,我想知道每个队列,开始日期和结束日期,知道前一个具有前一个队列,并且当前具有新队列。

我想要一个可以显示此结果的查询。帮我。 :(

问候。

2 个答案:

答案 0 :(得分:1)

SELECT t1outer.ID, t1outer.Time AS start, (
    SELECT Time FROM Table1 AS t1inner
    WHERE t1inner.ID > t1outer.ID
    ORDER BY ID ASC LIMIT 1
) AS end, Table2.Previous, Table2.Current
FROM Table1 AS t1outer
LEFT JOIN Table2 USING (ID);

答案 1 :(得分:0)

此select语句应提供您需要的信息:

SELECT Current AS Number, t1out.Time AS Start, (
    SELECT Time FROM Table1 AS t1in
    WHERE t1in.ID > t1out.ID
    ORDER BY ID ASC LIMIT 1
) AS End FROM Table2
LEFT JOIN Table1 AS t1out USING (ID)
WHERE Table2.Name = 'Queue';