Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/10/2010, 06:08
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: Cómo imprimir consulta con JOIN sin repetir clave foránea?

Cita:
Ahora mi pregunta es, ¿Cómo puedo hacer para que no se repitan los valores de este campo y lo muestre 1 sola vez sin hacer esto:

"SELECT Persona.Nombre,
Persona.Apellido,
Persona.EMail,
Empresa.Empresa,
Empresa.Ciudad
FROM Persona JOIN Empresa ON Persona.EMail = Empresa.EMail;" ?
¿Tu problema es entonces que te pone dos veces el campo`email`?

Sólo existen dos formas de evitarlo; la primera es la que ya te dijeron, invocar los campos específicamente (cosa que es una muy buena práctica porque evitas traer datos que no usas); la otra es el USING.
La cláusula USING se usa para establecer qué campos serán usados en un JOIN para relacionar dos tablas. Tiene como requisitos:
1) Los campos deben existir en ambas tablas.
2) Los campos deben poseer exactamente el mismo nombre en ambas tablas.

En tu caso sería:
Código MySQL:
Ver original
  1. FROM Persona INNER JOIN Empresa USING(Email );
Como USING hace un pivoteo sobre una columna, solamente muestra una, nada más. Es funcional con INNER, LEFT y RIGHT JOIN, y en esencia es estadísticamente más rápido que el ON, a pesar de que el parseo en una VIEW los traduce como iguales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)