Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/05/2013, 05:36
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: Inner Join no devuelve nada

Código MySQL:
Ver original
  1. (servicios.id=1 AND servicios.id=2)
Esta es una condición de cumplimiento imposible.
La evaluación del WHERE se cumple sobre cada uno de los registros, considerados independientemente, es decir que para que esas dos condiciones se cumplan ese único campo debe tener el valor 1 y 2 al mismo tiempo, cosa total y absolutamente imposible.
La condición a colocar es IN(), o bien OR.
Además de esto, en realidad no estás haciendo un INNER JOIN, sino un LEFT JOIN, que tiene resultados completamente distintos.
Ahora bien, como nos estás diciendo con qué DBMS estás trabajando, puede haber algunas diferencias sintácticas importantes para el caso que no estoy viendo. Las soluciones que te propongo con AMSI, es decir, planteadas desde el SQL estándar y deberían funcionar en (casi) todos los DBMS.

Tu consulta debería ser mas o menos así:
Código MySQL:
Ver original
  1.     `restaurantes` `t`  
  2.     INNER JOIN `serviciosrestaurantes` SR ON T.`id`= SR.`restaurantes_id`
  3.     INNER JOIN `servicios` S ON SR.`id`= S.`servicios_id`  
  4. WHERE S.id=1 OR S.id=2
o bien
Código MySQL:
Ver original
  1.     `restaurantes` `t`  
  2.     INNER JOIN `serviciosrestaurantes` SR ON T.`id`= SR.`restaurantes_id`
  3.     INNER JOIN `servicios` S ON SR.`id`= S.`servicios_id`  
  4. WHERE S.id IN(1, 2)

Dos cosas:
1) No nos dices qué framework crea esta sentencia, por lo que no podemos saber si es o no el adecuado, o siquiera si es bueno.
2) Un FMWK es tan bueno como el que lo programa.. lo cual desde la óptica de las bases de datos no suele ser una buena referencia. El 90% de las consultas creadas por medio de ellos deben ser modificadas para que realmente sean eficaces o eficientes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)