Hola a todos!
Veamos..., tengo la siguiente tablita m2m:
archivos_etiquetas Consulta: traer los archivos que tengan las etiquetas 1 y 2.
OPCIÓN 1: Intersección
Código:
(SELECT archivo_id FROM archivos_etiquetas WHERE etiqueta_id = 1)
INTERSECTION
(SELECT archivo_id FROM archivos_etiquetas WHERE etiqueta_id = 2)
Pero por lo que veo MySQL no lo implementa! Podrá ser?
De todas formas, con este método, habría que hacer tantas intersecciones como cantidad de etiqutas a incluir en la consulta. Como que no me gusta mucho.
OPCIÓN 2: Subconsultas
Código:
SELECT archivo_id FROM archivos_etiquetas WHERE
archivo_id IN (SELECT archivo_id FROM archivos_etiquetas WHERE etiqueta_id = 1) AND
archivo_id IN (SELECT archivo_id FROM archivos_etiquetas WHERE etiqueta_id = 2)
Este me gusta más, funciona, pero no se..., muchas subconsultas también.
¿Alguien podria plantear alguna alternativa?
Saludos y gracias!