我正在努力获取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 |
答案 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;
取决于您期望的记录数量。