我想知道是否有一种简单的方法可以在一个表中连接记录对来形成一个表。例如:
ID,TYPE,TIME
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
我想要检索的是一个列出对(A / B)的单个表格。
ID,TYPE,TIME,ID,TYPE,TIME
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,NULL,NULL,NULL
B记录应该是A之后的下一个记录,如果没有B则返回NULL。表格应按时间顺序排序。
TIA
答案 0 :(得分:1)
有趣的问题,希望这项工作适合你
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;
答案 1 :(得分:1)
感谢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