Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/07/2008, 21:24
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: Problema al consultar con una base datos en MySql

Prueba la cosa por partes, ya que al menos uno de los INNER JOIN está devolviendo vacío porque no hay valores coincidentes:

Primero:
Código:
SELECT * 
FROM empleado_fijo INNER JOIN empleado_contratado USING(CED)
WHERE CED = variableEntrada;
Luego:
Código:
SELECT * 
FROM empleado_fijo INNER JOIN empleado_contratado USING(CED)
INNER JOIN empleado_suplente USING(CED) 
WHERE CED = variableEntrada;
Después:
Código:
SELECT * 
FROM empleado_fijo INNER JOIN empleado_contratado USING(CED)
INNER JOIN empleado_suplente USING(CED) 
INNER JOIN obrero_contratado USING(CED) 
WHERE CED = variableEntrada;
y para terminar:
Código:
SELECT * 
FROM empleado_fijo INNER JOIN empleado_contratado USING(CED)
INNER JOIN empleado_suplente USING(CED) 
INNER JOIN obrero_contratado USING(CED) 
INNER JOIN obrero_fijo_2008 USING(CED) 
WHERE CED = variableEntrada;
Y
Código:
SELECT * 
FROM empleado_fijo INNER JOIN empleado_contratado USING(CED)
INNER JOIN empleado_suplente USING(CED) 
INNER JOIN obrero_contratado USING(CED) 
INNER JOIN obrero_fijo_2008 USING(CED) 
INNER JOIN obrero_suplente USING(CED)
WHERE CED = variableEntrada;
En uno de los pasos al menos debería devolver registros. Si no lo hace es porque no existen en ese campo valores en común entre las tablas. No existe otra posibilidad.
INNER JOIN iguala los campos del mismo nombre y los matchea según el valor. Cuando un registro en cada tabla coincide en valor con la otra, ese registro es devuelto. Al hacer INNER JOIN encadenados de esa forma, solamente si el campo en cuestión tiene el mismo valor en TODAS las tablas, será devuelto el registro combinado, sino NO.
No falla. Si no devuelve nada, insisto, es porque no existe una combinación en ese campo con TODAS las tablas.
El hecho de que no te devuelva un error me está diciendo que el INNER JOIN está funcionando, lo que no hay es valores coincidentes, o no existe el valor que estás mandando en la variable.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)