Как я могу объединить пары записей в одной таблице, отсортированной в хронологическом порядке (с использованием MySQL) - PullRequest
2 голосов
/ 05 января 2011

Я хотел бы знать, есть ли простой способ объединить пары записей в одну таблицу, чтобы сформировать одну таблицу.Например:

ID, ТИП, ВРЕМЯ

1, A, 01: 00: 00

2, B, 02: 00: 00

3, A, 03: 00: 00

4, B, 04: 00: 00

5, A, 05: 00: 00

что я хотел быretreive - это отдельная таблица, в которой перечислены пары (A / B), например:

ID, ТИП, ВРЕМЯ, ID, ТИП, ВРЕМЯ

1, A, 01:00:00, 2, B, 02: 00: 101 *

3, A, 03:00:00, 4, B, 04: 00: 00

5, A, 05: 00: 00, NULL, NULL, NULL

Запись B должна быть следующей после A, а если B нет, просто вернуть NULL.Стол должен быть отсортирован в хроническом порядке.

TIA

Ответы [ 2 ]

1 голос
/ 05 января 2011

Спасибо ajreal, это помогло мне найти ответ:

SELECT T.ID,T.Type,T.Time,T2.ID,T2.Type,T2.Time FROM Table T LEFT JOIN Table T2 
ON (T.Type = 'A' AND T2.Type = 'B' AND T.Time < T2.Time) 
WHERE T2.ID IS NOT NULL
GROUP BY T.ID
1 голос
/ 05 января 2011

забавный вопрос, надеюсь, эта работа для вас

select tbl_a.*, tbl_b.*
from 
  your_table as tbl_a
left join 
  your_table as tbl_b
on 
  tbl_a.ID=tbl_b.ID-1
where tbl_a.ID%2=1       <-- get ID mod 2=1
order by tbl_a.ID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...