mysql数据库中有这样一张表
table:(含有id time info三个字段)
id time info
1 2011-03-01 19:00:00 XX2 2011-03-01 17:00:00 AA3 2011-03-01 18:30:30 YY4 2011-03-01 18:30:00 ZZ想实现,首先按时间倒序排序,最近的时间放在最前面,然后,拍好序的结果,将每条记录的时间减去下条
记录的时间,求出时间差(用秒表示),作为新的结果字段difftime,排序后,想要实现结果如下:
id time info difftime
1 2011-03-01 19:00:00 XX 18003 2011-03-01 18:30:30 YY 304 2011-03-01 18:30:00 ZZ 54002 2011-03-01 17:00:00 AA 0请问在php里用什么样的sql语句能实现?
from 这样一张表 a
order by time
select *, (UNIX_TIMESTAMP(time)-(select max(UNIX_TIMESTAMP(time)) from table where time>a.time)) as difftime from table
order by time desc但是还是老提示说语法错误,不知道怎么回事?
a.time 外部
order by time desc
select *, UNIX_TIMESTAMP(time)-(select max(UNIX_TIMESTAMP(time)) from table where time<table.time) as difftime from table
order by time desc我按上面的写了,不报错了,但是里面的查询:select max(UNIX_TIMESTAMP(time)) from table where time<table.time总是不能正确给出结果,如果time<table.time这里,我把table.time换成一个具体的时间值,就可以,但是这样就与初衷不符,想的是table.time应该是外部的那个time,怎么应用到内部查询中?
from `table` a
order by time
from `table` a
order by time desc关键是要给外层的表起个别名用以区分子查询的表名。再次谢谢ACMAIN_CHM,又学到东西了