sql >> Base de Datos >  >> RDS >> Mysql

Selección de muchos a muchos de MySQL

La clave está en el AGRUPAMIENTO POR/TENIENDO utilizando un CONTEO de nombres de teléfono DISTINTOS. Cuando el recuento sea 2, sabrá que el usuario tiene ambos teléfonos.

SELECT m5.name
    FROM mark5 m5
        INNER JOIN mark4 m4
            ON m5.uid = m4.uid
        INNER JOIN mark3 m3
            ON m4.phoneid = m3.phoneid
    WHERE m3.name in ('HTC', 'Samsung')
    GROUP BY m5.name
    HAVING COUNT(DISTINCT m3.name) = 2;