Ver Mensaje Individual
  #23 (permalink)  
Antiguo 06/03/2013, 03:26
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: Consulta multiple para buscador

Bueno, allí comienza el problema, un INNER JOIN (y la coma es implícitamente uno), requiere que exista alguna relación.
Ahora bien, como te dije, un JOIN implícito intentará realizar el JOIN igualando todos aquellos campos que tengan el mismo nombre en ambas tablas, y en el ejemplo de esas dos tablas significa que intentará igualar todos los campos de "emergencias" con todos los campos de "hoteles".
Obviamente ese JOIN devolverá NULL porque es imposible que haya un registro de cada tabla que coincida en todos los campos con el otro. ¿No te parece?
Bien, entonces viene la segunda parte:
En un INNER JOIN múltiple, si una sola de las relaciones devuelve NULL, se hace NULL todo el resultado.
¿Se entiende?
Es lo mismo que realizar una multiplicación de siete términos, y uno de ellos ponerlo en cero (0): El resultado será cero, no importa cuantos números pongas.

Lo que pareces estar intentando es evitarte varias consultas, tratando de invocar todas las tablas en una sola, aunque no haya relaciones entre ellas.
Bueno, eso no lo podrás hacer. Las consultas deben tener integridad lógica, deben tener alguna relación para poder devolver datos.

Respecto a las tablas MyISAM, ese tipo de tabla no permite FK, pero el tema es que no las permite estructuralmente. Es decir, carece de ese recurso desde la definición de las tablas.
Pero eso no te impide crear la relación, y mantener la integridad por medio de validaciones, sea en SP o sea programáticamente.
¿Se entiende la idea?
Es decir que la integridad, en lugar de protegerla la base, la debes proteger tu.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)