我正在制作一个简单的时间和超时系统..我有3对进出。 P_ID(为person_id)
表A
p_id time_id status timestamp
1 1 in 2013-12-18 15:44:09
2 2 in 2013-12-18 16:23:19
1 3 out 2013-12-18 18:31:11
1 4 in 2013-12-18 18:50:11
3 5 out 2013-12-18 19:20:16
1 6 out 2013-12-18 19:50:11
2 7 out 2013-12-18 19:51:19
1 8 in 2013-12-19 07:51:19
1 9 out 2013-12-19 12:00:19
1 10 in 2013-12-19 01:00:19
1 11 out 2013-12-19 05:30:19
1 12 in 2013-12-19 07:51:19
1 13 out 2013-12-19 11:00:19
如何在表格结果中选择表格(同一日期的一行,右侧的输入和输出对按照time_id升序)?请查看这个简单的例子,也许你有个主意。 http://www.sqlfiddle.com/#!2/6dd1f/8
p_id status timestamp status timestamp status timestamp status timestamp status timestamp status timestamp
1 in 2013-12-18 15:44:09 out 2013-12-18 18:31:11 in 2013-12-18 18:50:11 out 2013-12-18 19:50:11
2 in 2013-12-18 16:23:19 out 2013-12-18 19:51:19
3 out 2013-12-18 19:20:16
1 in 2013-12-19 07:51:19 out 2013-12-19 12:00:19 in 2013-12-19 01:00:19 out 2013-12-19 05:30:19 in 2013-12-19 07:51:19 out 2013-12-19 11:00:19
答案 0 :(得分:1)
我认为你得到的最好,使用纯SQL就是这样的(未经测试,但你明白了):
SELECT p_id, GROUP_CONCAT(CONCAT(status, " ", timestamp)) inout
FROM TableA
GROUP BY p_id, DATE(timestamp)
答案 1 :(得分:0)
我不确切知道如何解决,但我知道你所寻找的是一个支点: 阅读更多关于: http://en.wikibooks.org/wiki/MySQL/Pivot_table