我几个小时都在努力,所以请帮助我。 这是我的用户表
id | username | last_activity(timestamp for online system)
这是我的朋友表
id | uid | fid
我想要的是按 last_activity 订购输出 我当前的查询如下所示:
SELECT fid FROM friends WHERE uid='$user_id'
答案 0 :(得分:2)
SELECT f.fid FROM f.friends
LEFT JOIN users u ON f.uid = u.id
WHERE uid=$user_id
ORDER BY u.last_activity DESC
答案 1 :(得分:1)
您想使用INNER JOIN
加入两个表:
SELECT f.fid
FROM friends f
INNER JOIN users u
ON u.id = f.id
ORDER BY u.last_activity DESC
始终确保输入真正的JOIN子句,因为有些方法已经过时且越来越不受支持。
在这里阅读更多内容: INNER JOIN on w3schools
答案 2 :(得分:0)
我想你想要
SELECT f.fid AS fid
FROM friends f, users u
WHERE f.uid = u.id AND f.uid = $user_id
ORDER BY u.last_activity DESC
我认为你的问题是fid
在一个表上,但排序标准last_activity
在另一个表上。此查询的目标是JOIN
friends
表中的每一行以及users
表中的相应行(通过WHERE
子句)。
答案 3 :(得分:0)
假设朋友表中的
uid
在用户中为foreign key references to id
表。所以使用INNER JOIN可以检索到你想要的结果。
SELECT f.fid
FROM friends f INNER JOIN user_tb u
ON u.id = f.uid
WHERE f.uid = '$user_id'
ORDER BY u.last_activity DESC;