對不起,標題不是很清楚。這是我之前問題的後續行動,其中一位成員幫助我進行查詢。Sql查詢 - 選擇用戶可以是朋友和用戶的行
我有以下的朋友表
朋友
friend_id - 主鍵
USER_ID
user_id_friend
狀態
的方式填充該表是 - 當我送朋友請求約翰 - 我的userID出現在user_id中,Johns userID出現在user_id_friend中。
現在,另一種情況是說,邁克向我發送好友請求 - 在這種情況下,邁克的用戶ID將出現在USER_ID和我的用戶ID將出現在user_id_friend
因此,要找到我所有的朋友 - 我需要運行一個查詢找到我的userID出現在user_id列以及user_id_friend列中的位置
我現在想要做的是 - 當我搜索用戶時說約翰 - 我希望列出的所有用戶約翰在我的網站上顯示出來他們是否是我的朋友的狀態,如果他們不是 - 然後顯示「添加朋友」按鈕。
基於以前的帖子 - 我得到這個查詢該做的工作的一部分 - 我的例子user_id是1:
SELECT u.user_id, f.status
FROM user u
LEFT OUTER JOIN friend f ON f.user_id = u.user_id and f.user_id_friend = 1
where u.name like '%'
所以這隻能說明用戶與他們我在哪裏,他們送我要求的朋友即我的用戶ID出現在user_id_friend中。
雖然我與其他人(在我的用戶ID出現在user_id列)的朋友 - 這個查詢將返回爲空
得到這些,我需要這樣的
SELECT u.user_id, f.status
FROM user u
LEFT OUTER JOIN friend f ON f.user_id_friend = u.user_id and f.user_id = 1
where u.name like '%'
那麼另一個查詢我怎麼組合這些查詢返回一組用戶以及我與他們的友誼狀態。我希望我的問題是清楚的
感謝
@Gubloo,無恥的插件,但你有沒有嘗試過我發佈的查詢作爲你之前問題的答案? – 2010-03-08 13:45:35
是的列文 - 我嘗試了你的查詢 - 它適用於我的userID會出現在user_id列中的1個情況 - 但是它出現在user_id_friend列中的地方 - 它會失敗。我不知道如何改變它,使它適用於這兩種情況。 - 謝謝 – Gublooo 2010-03-08 15:27:39