php朋友表

时间:2011-09-19 17:36:01

标签: php mysql

我几个小时都在努力,所以请帮助我。 这是我的用户表

id | username | last_activity(timestamp for online system)

这是我的朋友表

id | uid | fid

我想要的是按 last_activity 订购输出 我当前的查询如下所示:

SELECT fid FROM friends WHERE uid='$user_id'

4 个答案:

答案 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;