这是背景,我有一个object
包含以下内容的表格:
- ID
- 用户(来自用户表的 ID)
- 日期(日期)
- 状态 (0|1)
另一个表user
包含:
- ID
- 状态 (0|1)
前任。:
Object
ID | USER | DATE | STATE
1 1 2012-10-01 1
2 2 2012-08-01 1
3 3 2012-10-01 1
4 3 2012-10-02 1
5 3 2012-09-01 1
6 3 2012-10-01 1
7 1 2012-10-02 1
8 2 2012-10-02 0
9 2 2012-10-02 1
10 1 2012-10-01 1
11 2 2012-10-01 1
12 3 2012-10-01 0
13 4 2012-11-11 1
Users
ID | STATE
1 | 1
2 | 1
3 | 1
4 | 0
我会请求循环显示每个有效状态用户的一个对象,如果对象状态处于活动状态,则按日期 DESC 排序。
前任。结果 :
ID | USER | DATE | STATE
10 1 2012-11-01 1
9 2 2012-10-02 1
4 3 2012-10-02 1
7 1 2012-10-02 1
11 2 2012-10-01 1
3 3 2012-10-01 1
1 1 2012-10-01 1
2 2 2012-08-01 1
6 3 2012-10-01 1
5 3 2012-09-01 1
我可以做简单的查询,但我承认不知道该怎么做。
编辑 2012-11-22: 让我们尝试另一种方法......通过这个查询(感谢 Michiel van Vaardegem),我有一个用户列表,以便我想要......顶部有新鲜度对象的用户。
SELECT o.user
FROM object o
INNER JOIN users ON user.id = o.user
WHERE o.state=1 AND users.state=1
GROUP BY o.user
ORDER BY o.date DESC
结果是:
USER
1
2
3
新问题方法:有了这个 id 列表、可能计算的行数和用户定义的变量,你认为可以做些什么吗?
例子:
- 假设这个列表,SELECT * FROM object WHERE user IN ($thislist) AND state=1 ORDER BY date DESC
- 对于每个对象行,取决于用户(这里我不知道如何在 mysql 中解释)
用 userposition(in cycle) + usercount 增加一个 rank var
- ORDER BY rank LIMIT n,x结果
我想在用户周期中对我的对象进行排名,例如:
object from user 1,2,3,1,2,3,1,3,3,1,1,1,1,1,1,1,1,etc... if exist
这种新的方法算法是否可以在 mysql 查询中实现,如果可能的话,如何......这是个好问题?
任何人都只能在 MySQL 中看到解决方案吗?
提前致谢