Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/10/2009, 18:49
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Duda selección de filas con campos iguales

Hay varias formas. Una de ellas es establecer que como deben tener dos estilos asignados al mismo disco, el disco debe estar instanciado dos veces en el resultado, si o si:
Código SQL:
Ver original
  1. SELECT
  2.    D.nombre
  3. FROM  
  4.    discos D
  5.    INNER JOIN  discos_estilos ED USING (id_disco)  
  6.    INNER JOIN estilos E  USING(id_estilos)
  7. WHERE  
  8.    E.id_estilos IN (2, 4)
  9. GROUP BY D.nombre
  10. HAVING COUNT(*) = 2;

Otra posibilidad es invocar dos veces la tabla estilos y que empareje los registros de modo de cumplir las dos condiciones si o si:
Código SQL:
Ver original
  1. SELECT DISTINCT
  2.    D.nombre
  3. FROM  
  4.    discos D
  5.    INNER JOIN  discos_estilos ED USING (id_disco)  
  6.    INNER JOIN estilos E1  USING(id_estilos)
  7.    INNER JOIN estilos E2 USING(id_estilos)
  8. WHERE  
  9.    E1.id_estilos = 2 AND E2.id_estilos = 4;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)