Mysql
 sql >> Database >  >> RDS >> Mysql

Quali sono i modi per ottenere amici comuni in uno scenario di amicizia (1, 2) (2, 1)?

Osservando il formato della tabella dal tuo altra domanda , questo dovrebbe fare quello che vuoi;

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;

Demo qui .