我有兩個表:members和member_requests。當成員向好友請求發送另一個成員時,會將一行插入到member_requests表中。如果收件人接受請求,則狀態更新爲1.如果某人拒絕該請求,該請求將被刪除。我已經嘗試了許多不同的查詢來爲特定用戶生成一個朋友列表,但沒有一個似乎能正常工作。請求的author_id必須是當前成員的id,或者接收者id必須是當前成員的id。有人可以提供一個查詢,可以做到這一點?如何根據好友請求的狀態使用MySQL獲取好友列表?
http://sqlfiddle.com/#!2/021d7/13
SELECT
r.request_id, r.author_id, r.recipient_id, r.status,
m.member_id, m.display_name
FROM member_requests AS r
LEFT JOIN members AS m ON (r.author_id = m.member_id OR r.recipient_id = m.member_id)
WHERE r.status = 1
ORDER BY m.display_name
你嘗試過使用'NOT IN'條件嗎?類似於'SELECT * FROM成員朋友的朋友WHERE friend_id NOT IN(SELECT成員的直接朋友)'? – 2014-11-02 00:37:48
如果您在編輯之前看到我的文章,請再閱讀一次。我意識到,我所擁有的查詢實際上並不是朋友,而是所有成員。 – ShoeLace1291 2014-11-02 00:43:54
所以,如果我理解正確(在您編輯之後) - 您想獲得某個成員的所有當前朋友的列表?那是 - 包含「我」(作爲作者或作爲友誼的接受者)並且具有「1」狀態的所有請求的列表? – 2014-11-02 00:48:41