В демонстрационных целях я изменил вашу таблицу, чтобы использовать varchars для идентификаторов пользователя, но целые числа будут работать так же.
Из-за этого требования
, если Джессика одобрит Мэтта, ноМэтт не одобряет Джессику, тогда запрос не будет отображаться
Вы должны выполнить самостоятельное объединение идентификаторов дважды, а не один раз.Другой мудрый Иа появится в ваших результатах.
CREATE approvals table (id int, user_id varchar(10), to_user_id varchar(10))
INSERT INTO
approvals
VALUES ( 1 , 'Matt' , 'Jessica' ),
( 2 , 'Jessica' , 'Matt' ),
( 3 , 'Eeyore' , 'Jessica' ),
( 4 , 'Eeyore' , 'Matt' )
SELECT *
FROM approvals a
INNER JOIN approvals b
ON a.user_id = b.to_user_id
AND b.user_id = a.to_user_id
WHERE a.to_user_id = 'Matt'
Вы можете увидеть это в действии в этом запросе Data.SE