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 originalSELECT D.*, J.cedula_jurado
FROM defensa D JOIN jurado J ON D.estudiante_cedula = J.cedula_estudiante
WHERE
D.codigo_defensa='$codigo_defensa'
AND J.nombre_proceso='Defensa tesis'
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.