У меня есть две таблицы: члены и member_requests. Когда член отправляет другому члену запрос друга, строка вставляется в таблицу member_requests. Если получатель принимает запрос, статус обновляется до 1. Если человек отклоняет запрос, он будет удален. Я попробовал много разных запросов для создания списка друзей для определенного пользователя, но ни один из них не работает правильно. Либо author_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
Вы пытались использовать условие «НЕ IN»? Что-то вроде 'SELECT * FROM друзей друзей участника WHERE friend_id NOT IN (прямые друзья-члены SELECT)'? –
Если вы видели мое сообщение до того, как я его отредактировал, пожалуйста, прочитайте еще раз. Я понял, что запрос, который у меня был, на самом деле не подружился, он получал всех участников. – ShoeLace1291
Итак, если я правильно понял (после вашего редактирования) - Вы хотите получить список всех текущих друзей определенного члена? То есть - список всех запросов, содержащих «меня» (как автора или получателя дружбы) и имеющих статус «1»? –