Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Many-to-Many Select

Der Schlüssel liegt im GROUP BY/HAVING unter Verwendung einer COUNT von DISTINCT-Telefonnamen. Wenn die Anzahl 2 ist, wissen Sie, dass der Benutzer beide hat Telefone.

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;