MySQL查询以获取最新结果和记录数

时间:2015-02-18 20:14:12

标签: php mysql

我正在努力获取ID及其记录数量相同值的最新记录。

我的第一个MySQL查询是:

SELECT COUNT(*) AS Total FROM `users` 
WHERE status = '1' AND option1 = {variable from URL}
AND option2 = '1'

其中显示的记录数量很好。我的第二个问题是:

SELECT option1, option2
FROM `users` WHERE date IN (SELECT MAX(date) FROM `users` 
WHERE option1 = '2' GROUP BY option2) ORDER BY date DESC

它也可以。

有没有办法合并这两个请求?或者我应该发送2个不同的查询?

我的表格如下:

option1  |  option2  |  status  |
1        |  2        |  1       |
2        |  1        |  2       |
1        |  2        |  2       |
6        |  1        |  1       |
1        |  2        |  1       |

或者我需要使用PHP解决方案来实现这一目标?我希望得到结果:

option1  |  option2  |  status  | Total  |
1        |  2        |  1       | 2      |
2        |  1        |  2       | 0      |
1        |  2        |  2       | 0      |
6        |  1        |  1       | 1      |

1 个答案:

答案 0 :(得分:3)

可能不是最好的,但是两个users表如何:

SELECT COUNT(u1.option1) AS Total, u2.option1, u2.option2
  FROM `users` u1, `users` u2
 WHERE u1.status = '1' 
   AND u1.option1 = {variable from URL}
   AND u1.option2 = '1'
   AND u2.date IN (SELECT MAX(date) 
                    FROM `users` 
                    WHERE option1 = '2' 
                    GROUP BY option2) ORDER BY u2.date DESC;

取决于您期望的记录数量。