Есть два пользователя
Пользователь 1 profile_id
3734387944
затем User 2 Profile_id
1421536173
есть таблица друзей со структурой
from_profile_id
to_profile_id
request
blocked_by
а это данные и структура пользователей
var_id profile_id fullname firstname lastname
180 3734387944 John Louis Domincel John Louis Domincel
181 1421536173 James Domincel James Domincel
а это данные и структура друзей
from_profile_id to_profile_id request blocked_by
3734387944 1421536173 3 3734387944
а это данные и структура поста
id profile_id text
1 3734387944 POST OF USER 1
2 1421536173 POST OF USER 2
Используя этот запрос, я могу выбрать все сообщения каждого пользователя
SELECT * FROM post ORDER BY var_id DESC
Но я хочу отфильтровать это:
Пользователь 1 заблокировал пользователя 2, поэтому оба они не могут получать каждое сообщение пользователя, та же функция. Если не друзья, но если они друзья, данные будут отображаться у каждого пользователя.
Request Legend
1 = Friend Request
2 = Friends
3 = Blocked
Я пробовал этот другой запрос: но пользователь 1 может видеть сообщения пользователя 2, а пользователь 2 не может видеть сообщение пользователя 1, только если он заблокирован. я бы хотел
измените его и сделайте так, чтобы они оба не могли видеть сообщения каждого пользователя, если он заблокирован, а не друзья
SELECT u.*,f.*
FROM post AS u
LEFT JOIN friends AS f
ON f.blocked_by = u.profile_id AND
f.blocked_by <> "3734387944" AND
(
f.to_profile_id = "3734387944" OR
f.from_profile_id = "3734387944"
) AND
f.request = 3
WHERE f.from_profile_id IS NULL
Вот DB-FIDDLE LINK