2011-07-09 92 views
0

我試圖讓用戶朋友之間的用戶的位置,但我沒有的我怎麼能做到這一點的任何想法之間的用戶位置...找朋友

我有兩個表。

表1:朋友(其中所有的用戶朋友列出)

表2:用戶(其中​​所有的用戶都被列)

我想查詢,以檢查他的朋友們之間的用戶位置。

所以,如果我,例如有ID 1(100學分)和ID爲2(21個學分)的朋友,查詢將列出我的位置1.

回答

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; 
0

爲了獲得我建議使用PHP的位置,而不是嘗試將其全部置於一個查詢中。所以得到像Flimzy所描述的排序列表,並通過使用像array_search這樣的數組函數來獲得位置。