我正在建立一个网络/社交网站,我正在尝试创建一个功能,以便在您访问该网页时返回访问同一网页的用户。
如何从表中选择用户" USERS"通过对表中的user_id进行计数和分组" READING"?
数据库结构如下:
用户
阅读
应该返回的是像这样的数组
user
- user_id
- user_name
- user_first_name
- ...
user
- user_id
- ...
这是我到目前为止的查询
SELECT r.user_id,u。* FROM读取r,用户u GROUP BY r.user_id AS count WHERE u.user_id = r.user_id ORDER BY count DESC
示例表
USERS
// user_id // user_name // user_email
-------------------------------------
123 / mentos / m@gmail.com
-------------------------------------
321 / freshmaker / f@gmail.com
-------------------------------------
231 / hubba / h@gmail.com
阅读
// id // user_id // timestamp
--------------------------------------
1 / 123 / 201501050420
2 / 321 / 201501050420
输出应该是什么
的示例-ARRAY
-user
- 123
- mentos
- m@gmail.com
-user
- 321
- freshmaker
- f@gmail.com
答案 0 :(得分:0)
你在找这样的东西吗?
SELECT u.*
FROM
(
SELECT DISTINCT user_id
FROM reading
WHERE update_timestamp >= NOW() - INTERVAL 5 MINUTE -- or any other appropriate time interval
AND user_id <> 4 -- depending on the logic you might want to exclude the current user itself
) q JOIN users u
ON q.user_id = u.user_id
这是 SQLFiddle 演示