让用户在朋友之间定位

时间:2011-07-09 11:13:56

标签: php sql codeigniter

我正试图在用户朋友之间找到用户的位置,但我不知道我该怎么做...

我有两张桌子。

表1:朋友(列出所有用户朋友)

表2:用户(列出所有用户)

我希望查询检查用户之间的用户位置。

因此,如果我有ID 1(有100个学分)和ID为2的朋友(有21个学分),查询会将我的职位列为1。

2 个答案:

答案 0 :(得分:2)

您实际上并没有提供有关表格布局的大量信息,因此我无法提供一个非常具体的示例。我也害怕我不明白你的问题,但我会试一试......

首先,我假设您的用户表至少包含以下列:

id (PK)
credits

朋友表中包含以下列:

user (FK to users.id)
friend (FK to users.id)

现在,如果我理解你的问题,你想根据他们拥有多少学分来排名所有用户的朋友,所以:

SELECT u.id,u.credits
FROM friends AS f
JOIN users AS us ON f.friend = u.id
WHERE f.user = 1
ORDER BY u.credits DESC;

答案 1 :(得分:0)

为了获得这个位置,我建议使用PHP,而不是试图将它全部放在一个查询中。因此,获取像Flimzy描述的排序列表,并使用array_search等数组函数获取位置。