Mysql Queue Start / End time time - PullRequest
       6

Mysql Queue Start / End time time

0 голосов
/ 08 ноября 2011

У меня есть одна проблема, которую я не могу решить.

У меня есть 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
...
...

Предыдущее и текущее поля имеют номер очереди, и я хочу знать для каждой очереди, дату начала и дату окончания, зная, что предыдущая имеет предыдущую очередь, а текущая имеет новую очередь.

Я хочу один запрос, который может представить этот результат. Помоги мне. (

Привет.

Ответы [ 2 ]

1 голос
/ 08 ноября 2011
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);
0 голосов
/ 11 ноября 2011

Этот оператор выбора должен предоставить необходимую информацию:

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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...