Php 使用具有相同id的select part2将选定列值转换为另一行
我正在制作一个简单的时间输入和时间输出系统。。我有三对进线和出线。p_idperson_id 表Php 使用具有相同id的select part2将选定列值转换为另一行,php,mysql,select,row,Php,Mysql,Select,Row,我正在制作一个简单的时间输入和时间输出系统。。我有三对进线和出线。p_idperson_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:1
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 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 a1.id, a.1status, a1.timestamp, a2.status, a2.timetstamp
FROM timetable a1
LEFT JOIN timetable a2 ON a2.id=a1.id AND a2.status = 'out'
WHERE a1.status = 'in'
让一行只有一个out值对我来说没有任何意义。试试这个查询
select t1.id,t2.status as IN_Status,t2.timestamp as IN_Time,t3.status as OUT_Stats,t3.timestamp as OUT_Time
from table1 t1
left join table1 t2 on (t1.id=t2.id and t2.status ='in')
left join table1 t3 on (t1.id=t3.id and t3.status ='out')
group by t1.id;
检查示例
问题是??我想把表a选进表结果…:让我试试这个。。谢谢你,谢谢你!!工作只是一种魅力!如果我再添加两列status和timestamp呢?先生,如果你有第三身份,我该怎么办?添加另一个左连接:在a3上左连接时间表a3。id=a1.id和a3.status='status3',并相应地添加您的选择列表:选择a1.id、a.1status、a1.timestamp、a2.status、a2.timetstamp、a3.STATUSTATUS、a3.timestamp,而不是第三个状态。。我是指同一id上的另一组输入和输出记录的另一列2013-12-18 16:23:19输出2013-12-18 17:23:19输出2013-12-18 18:50:19输出2013-12-18 18 18:23:19输出2013-12-18 19:23:19