我有这些表:
users
-----
id INT
name VARCHAR(20)
email VARCHAR(40)
user_fans
----------
id INT
user_id INT /* linked to users.id */
fan_id INT /* linked to users.id */
time_created INT /* unix timestamp */
我可以使用以下查询从users
带有附加字段的表中获取所有行num_fans
SELECT u.id, u.name, u.email, COUNT(f.id) AS num_fans
FROM users u
LEFT JOIN user_fans f ON u.id=f.user_id
GROUP BY u.id, u.name, u.email
ORDER BY num_fans DESC
问题是我需要num_fans
在一段时间内得到。我试过这个查询
SELECT u.id, u.name, u.email, COUNT(f.id) AS num_fans
FROM users u
LEFT JOIN user_fans f ON u.id=f.user_id
WHERE f.time_created > UNIX_TIMESTAMP('2012-5-1 00:00:00')
GROUP BY u.id, u.name, u.email
ORDER BY num_fans DESC
但是上面的查询只会返回已经有粉丝的用户。我希望其他用户也返回 num_fans=0。
谢谢你的帮助。