mysql - 表格加入Mysql

标签 mysql

我的表结构是:

SELECT * FROM `MYTABLE` WHERE `USERID` = 148 ORDER BY `TABLEDATE` DESC;

ID  USERID STATE_ID   TABLEDATE              
96  148    13         2013-01-08 06:11:34   
554 148     3         2013-01-03 04:46:08   
25  148     2         2013-01-02 04:46:07   

我想要表“MYTABLE”(=> 按 STATE_ID DESC 限制 1,1 排序)中用户的第二个最高条目,其最后条目日期为日期“2013-01-08”。

我尝试形成查询但失败了。请帮忙?

SELECT F1.USERID,
  MAX(F2.TABLEDATE),
  F2.STATE_ID
FROM MYTABLE F1 
 JOIN MYTABLE F2 ON F1.USERID = F2.USERID WHERE
   F1.STATE_ID = 13 AND
   F2.TABLEDATE < F1.TABLEDATE AND
   F1.TABLEDATE <= '2013-01-08 23:59:59' AND
   F1.TABLEDATE >=  '2013-01-08 00:00:00' 
 GROUP BY F1.USERID 

输出

148 2013-01-03 04:46:08 2

预期输出

148 2013-01-03 04:46:08 3

最佳答案

如果您想要 State_ID 值第二高的行,您可以简单地这样做:

SELECT *
FROM 
(
   SELECT *
   FROM yourTable
   LIMIT 2
) AS sub
ORDER BY State_ID 
LIMIT 1;

关于mysql - 表格加入Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870857/

相关文章:

php - 使用两个外键作为主键 - MySQL

MySQL SUM 查询速度极慢

mysql - 仅针对缺失数据提取结果

mysql - 如何从sql表中的列中获取最新日期?

mysql - 寻找四舍五入列中的数字

MySQL 比较名称和地址

javascript - 将文本框值存储在临时表中

mysql - SQL 注释分组

php - 如何在 ORM 查询中混合 OR 和 AND

mysql - 如何在 SQL 的数学运算符中使用别名?