Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/10/2014, 06:29
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: Una consulta con subconsulta, misma key

Si la tabla A se relaciona con la B en una cardinalidad 1:N es normal que haya estas "duplciaciones" que no son tales. Es el compotamiento normal, esperado y correcto.
Lo que te tiene que quedar claro es que eso implica que hay N registros de la tabla B relacionados con cada uno de los de la A, y ese N puede ir de 1 a lo que haya. Por consecuencia, como el INNER JOIN es la junta natural, a menos que el WHERE tenga condiciones que excluyan los registros adicionales, siempre te devolvera todo lo que coincida entre ambas tablas.
Lo que tienes que hacer es definir cuál es la condición que debería cumplir el registro de la tabla B para ser el unico devuelto por la consulta.
¿Es el primero?
¿Es el último ingresado?
¿Es el que tenga cierto valor en otro de los campos?

Eso es lo que debes determinar, y agregar eso en el WHERE, o bien adicionar las clausulas necesarias para cumplir con lo que quieres (ordenamieto, agrupacion, maximos, minimos, medias, etc.).

Quiero que te quede claro que el SQL no comete errores al devolverte eso. El error está en la sintaxis de la query que no los excluye.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)