Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/05/2013, 00:05
ferminako
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Inner Join no devuelve nada

Finalmente lo he solucionado usando joins y combinando los in y el having tal que:
Código MySQL:
Ver original
  1. `restaurantes` `t`  LEFT OUTER JOIN `tiposcocinarestaurantes`
  2. `tiposCocina_tiposCocina` ON
  3. (`t`.`id`=`tiposCocina_tiposCocina`.`restaurantes_id`) LEFT OUTER JOIN
  4. `tiposCocina` `tiposCocina` ON
  5. (`tiposCocina`.`id`=`tiposCocina_tiposCocina`.`tiposCocina_id`)  LEFT OUTER
  6. JOIN `serviciosrestaurantes` `servicios_servicios` ON
  7. (`t`.`id`=`servicios_servicios`.`restaurantes_id`) LEFT OUTER JOIN
  8. `servicios` `servicios` ON
  9. (`servicios`.`id`=`servicios_servicios`.`servicios_id`)  WHERE (
  10. tiposCocina_id IN (1,2)) AND ( servicios_id IN (1,2)) GROUP BY t.id HAVING
  11. ( COUNT(DISTINCT tiposCocina_id)=2 and COUNT(DISTINCT servicios_id)=2)

Y funciona, por ultimo necesito tambien filtar por otra tabla más, esta tabla es disponibilidad y tiene un relacion 1 a n con restaurantes, es decir un restaurante puede tener una o más disponibilidades pero una disponibilidad es unica y exclusiva de un restaurante. He probado diversos joins pero no se cual es el correcto ni donde, donde lo pondrian ustedes?

Gracias!!

Última edición por ferminako; 05/06/2013 a las 03:01