Ваша «не» часть условия (1817,393), возможно, является путём решения вашей проблемы.
(user_id != 1817 AND profile_id !=393) OR (to_user_id != 1817 AND to_profile_id !=393)
Например;Если user_id и profile_id не совпадают (1817,393), то OR означает, что to_
детали никогда не нуждаются в проверке.С левой стороны ИЛИ все в порядке, не имеет значения, что происходит справа.
Вы можете изменить это следующим образом (при условии, что я вас правильно понимаю) ...
NOT ((user_id=1817 AND profile_id=393) OR (to_user_id=1817 AND to_profile_id=393))
Некоторые люди (например, я) продолжают пытаться манипулировать, чтобы избежать использования НЕ и сохранить этот крошечный кусочек обработки.Поверь мне, оно того не стоит :) 1018
SELECT *
FROM `friends` AS Friend
WHERE
(
(Friend.user_id = 1618 AND Friend.profile_id = 290)
OR
(Friend.to_user_id = 1618 AND Friend.to_profile_id = 290)
)
AND
NOT
(
(Friend.user_id = 1817 AND Friend.profile_id = 393)
OR
(Friend.to_user_id = 1817 AND Friend.to_profile_id = 393)
)
)