Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2008, 09:23
Avatar de Hereje
Hereje
 
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
Consulta simple M2M!

Hola a todos!

Veamos..., tengo la siguiente tablita m2m:

archivos_etiquetas
  • archivo_id
  • etiqueta_id

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!
__________________
Sergio