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

Query di ricerca con più tag

Quanto segue dovrebbe funzionare.

SELECT media_id
FROM tagXmedia
WHERE tag_id IN (SELECT id FROM tag WHERE name IN ('home','hawaii'))
GROUP BY media_id
HAVING COUNT(tag_id) = 2;

Se desideri che corrisponda a più di due soli tag, puoi aggiungerli facilmente. Ricorda solo di cambiare il 2 nel HAVING clausola.

Ho assunto tutte le righe in tagXmedia sono unici. In caso contrario, dovrai aggiungere DISTINCT al COUNT parte.