Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Quais são as maneiras de obter amigos em comum em um cenário de amizade (1, 2) (2, 1)?


Observando o formato da tabela do seu outra pergunta , isso deve fazer o que você deseja;
SELECT name FROM users u
JOIN friends f1
  ON u.uid = f1.uid OR u.uid = f1.fid
JOIN friends f2
  ON u.uid = f2.uid OR u.uid = f2.fid
WHERE (f1.uid=1 OR f1.fid=1) AND (f2.uid=3 OR f2.fid=3) 
  AND u.uid<>1 AND u.uid<>3;

Demonstração aqui .