Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用具有相同id的select将选定列值转换为另一行_Php_Mysql_Select_Row - Fatal编程技术网

Php 使用具有相同id的select将选定列值转换为另一行

Php 使用具有相同id的select将选定列值转换为另一行,php,mysql,select,row,Php,Mysql,Select,Row,我正在制作一个简单的时间输入和时间输出系统。。我有三对进线和出线。p_id(个人id) 表 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

我正在制作一个简单的时间输入和时间输出系统。。我有三对进线和出线。p_id(个人id)

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
如何将表选择到表结果中(同一日期的一行以及右侧的输入和输出对根据时间\ id升序)?请检查这个简单的例子,也许你有一个想法


我不知道具体如何解决,但我知道您正在寻找的是一个支点: 阅读更多关于:

我认为,使用纯SQL可以得到最好的结果(未经测试,但你会明白这一点):


我很抱歉。。呵呵。。我已经做了一些编辑。。提前谢谢。:)这似乎是或。一般来说,最好是对现有的问题进行编辑,而不是复制它们,以避免读者产生重复的努力。我认为这只是一个左连接。。但我不知道该怎么办无论如何,谢谢你的建议。问题是,对于一个特定的日期/p_id组合,可能会有无限的输入/输出记录,因此查询需要递归。据我所知,MySQL不会这样做。你不能使用左连接,因为resultset上的Collens是动态的。是否需要更改我的表的结构?他们昨天就我的第一部分问题给了我这个答案。请看一看。。我现在的问题是,我想在同一天每人做3对输入/输出记录(另一行表示另一个日期)
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
SELECT p_id, GROUP_CONCAT(CONCAT(status, " ", timestamp)) inout
FROM TableA
GROUP BY p_id, DATE(timestamp)