Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/05/2015, 13:05
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: 17 años
Puntos: 2658
Respuesta: Problema al hacer una consulta de una tabla a otra con clave múltiple.

Cita:
Esto es lo que tengo. A pesar de tener la clausula WHERE el registro de me duplica. Y solo quiero un registro.
En BBDD se considera duplicado un registro sólo cuando todos lso campos tienen valores repetidos entre dos registros cualesquiera.
En tu caso, si al menos UN campo no tiene el mismo valor, eso significa que no hay duplicidad.

Ahroa bien, recuerda que un INNER JOIN relaciona dos tablas en base a un vinculo dado por lo que se indique como relación. Si sólo relacionando por FK te devuelve dos registros, eso significa que hay dos registros d euna tabla vinculados con uno de otra, pero eso no es un error, sino en todo caso que hay una relación 1:N entre ambas tablas, o bien que hay inconsistencia de datos.
Tu dirás cual de las dos es correcta.

Limpiando tu consulta, recuerda que la relacion dada en el ON no tiene que repetirse en el WHERE. Estás trabajando con JOIN explícito...

Código SQL:
Ver original
  1. SELECT D.*, J.cedula_jurado
  2. FROM defensa D JOIN jurado J ON D.estudiante_cedula = J.cedula_estudiante
  3. WHERE
  4.     D.codigo_defensa='$codigo_defensa'
  5.    AND J.nombre_proceso='Defensa tesis'
  6.    AND J.estatus='Sugerido'
Lo que yo sospecho en base a esto es que hay efectivamente dos registros relacionados. Y s se trata de una relacion Defensa/Jurado diferente en cada caso, entonces te está faltando una condición en el WHERE que las discrimine.
POstea un ejemplo claro de los datos que te devuelve.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)