таблица: пользователь (id INT, имя VARCHAR)
таблица: черный список (id INT, userid INT, block_userid INT)
SELECT user.id theID, user.firstname
FROM user
WHERE
NOT user.id = 1000
AND IF ((SELECT id FROM blocklist WHERE theID = ANY (SELECT blocked_userid FROM blocklist WHERE userid = 1000)), 0, (IF ((1000 = ANY (SELECT userid FROM blocklist WHERE blocked_userid = theID)),0,1)))
Я хочу вернуть список всех пользователей, а не текущего пользователя, скажем ... пользователя 1000, который не заблокирован этим пользователем или которого нет в черном списке другого пользователя. Таким образом, это двусторонняя система ... вы не можете видеть людей, которых вы заблокировали, и вы можете видеть людей, которые заблокировали вас. Проблема в том, что я не очень хорошо могу использовать "theID" в подзапросе. Каков наилучший способ справиться с этим?