0
我有一個用戶表加入/ GROUP BY查詢返回奇怪的結果
id , username
22 , max
33 , jack
44 , joe
和朋友表
id , u1 , u2 , status , reciver
有關讀書的朋友,我已經決定增加速度以增加兩個行每個友誼 表,以便它是這樣的
id , u1 , u2 , status , reciver
1 , 22 , 33 , 1 , 22
2 , 33 , 22 , 1 , 22
3 , 22 , 44 , 1 , 22
4 , 44 , 22 , 1 , 22
5 , 22 , 55 , 1 , 22
6 , 55 , 22 , 1 , 22
現在我想EAC^h用戶的朋友和計算這兩者之間的共同的朋友,如Facebook
這裏是我的好友列表查詢:
$profile_id = $current_user->id;
$res = $db->query("
select
u.id as firend_id,
u.username as firend_name,
f.status as firendship_status,
COUNT(f3.u2) as mutual
from friends f
JOIN users u on f.u2 = u.id
LEFT JOIN friends f2 on f.u2 = f2.u1 and f2.u2 != $profile_id
LEFT JOIN friends f3 on f3.u1 = $profile_id AND f3.u2=f2.u2
WHERE f.u1 = $profile_id
group by f2.1
");
echo 'friends list : '
foreach ($res->result() as $r){
echo $r->firend_name;
echo $r->mutual.' friends';
}
,所以我檢查配置文件ID($ PROFILE_ID)的所有者對friends.u1和 加盟在friends.u2(創辦朋友)給用戶表中獲得自己的用戶名和ID
問題是在數着共同的朋友
我參加朋友的表與它自身 每個缶nded朋友
似乎在紙上確定,但就像如果用戶有3個朋友,有沒有共同的朋友,只返回的3個朋友 一個返回一些奇怪的結果
!
,如果有共同的朋友它顯示了所有的朋友,但共同的朋友數量是錯誤的大多數情況下
有通過語句組問題
感謝名單,但我仍然只得到1的友情的結果,是 – max
你能設置提供完整的數據無處不在「分組依據」的問題嗎? (通過完整的,我只有nean的朋友表,不需要用戶測試這個) – Robbie
坦克前重播,這裏是我的朋友表 http://www.mediafire.com/?u70d4qed46vbq3f – max