Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Diferenciar nombres de campo en un inner join doble

Estas en el tema de Diferenciar nombres de campo en un inner join doble en el foro de Mysql en Foros del Web. si tengo esta consulta @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT acc .*, u1 .*, u2 .* FROM acciones acc INNER JOIN usuarios u1 ON ...
  #1 (permalink)  
Antiguo 05/10/2014, 19:53
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Diferenciar nombres de campo en un inner join doble

si tengo esta consulta
Código SQL:
Ver original
  1. SELECT acc.*, u1.*, u2.* FROM acciones acc
  2. INNER JOIN usuarios u1 ON acc.accionesEmisor=u1.usuariosId
  3. INNER JOIN usuarios u2 ON acc.accionesReceptor=u2.usuariosId

al traer 2 veces la tabla usuarios después al hacer mysqli_fetch_array no se como diferenciar los dos usuarios por el nombre del campo

Última edición por gnzsoloyo; 05/10/2014 a las 20:01
  #2 (permalink)  
Antiguo 05/10/2014, 20:04
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Diferenciar nombres de campo en un inner join doble

No puedes diferenciarlos si los traes todos con el "*". Lo que debes hacer es invocar los campos que necesitas uno a uno, y aplicarles alias propios a cada uno de ellos.
Código MySQL:
Ver original
  1.     acc.acc_id,
  2.     u1.usuariosId IdEmisor,
  3.     u1.nombre NombreEmisor,
  4.     u2.usuariosId IdReceptor,
  5.     u2.nombre NombreReceptor
  6. FROM acciones acc
  7.     INNER JOIN usuarios u1 ON acc.accionesEmisor = u1.usuariosId
  8.     INNER JOIN usuarios u2 ON acc.accionesReceptor = u2.usuariosId
De ese modo lo que el lenguaje de programación recibe como nombres de encabezados de columna son los alias respectivos.
No hay otra opción.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 06/10/2014 a las 21:31

Etiquetas: campo, diferenciar, doble, join, nombres, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:09.