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

Mysql - Wählen Sie IDs aus, die mit allen Tags übereinstimmen

Die Idee der Abfrage ist, dass Sie die Anzahl der Datensätze mit der Anzahl der Werte abgleichen müssen, die Sie in WHERE angegeben haben Klausel.

SELECT ID
FROM tableName
WHERE tag IN (4, 8)
GROUP BY ID
HAVING COUNT(*) = 2

Wenn die eindeutige Einschränkung nicht für jede ID auf dem Tag angegeben wurde, dann DISTINCT wird benötigt

SELECT ID
FROM tableName
WHERE tag IN (4, 8)
GROUP BY ID
HAVING COUNT(DISTINCT tag) = 2