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

Traer nombre de campo de otra tabla

Estas en el tema de Traer nombre de campo de otra tabla en el foro de Mysql en Foros del Web. Buen día y gracias por detenerse a leer este tema, Si yo tengo una tabla Ciudades que consta de dos campos id_ciudad y nombre_ciudad Y ...
  #1 (permalink)  
Antiguo 12/07/2011, 11:28
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Traer nombre de campo de otra tabla

Buen día y gracias por detenerse a leer este tema,

Si yo tengo una tabla Ciudades que consta de dos campos

id_ciudad y nombre_ciudad

Y tengo otra tabla donde los usuarios se registran y en el campo ciudad guardo id_ciudad

Como podría hacer para que cuando yo muestre los datos del usuario no me aparezca id_ciudad sino el nombre_ciudad ?

es mejor hacerlo con un INNER JOIN o es mejor crear una función con PHP que me realice el trabajo de convertir esos números a nombres de ciudades ?

O es mejor hacer otro select a la base de datos a la tabla ciudades y que me traiga el nombre donde id_ciudad_usuario = id_ciudad ?

Muchas gracias por la informacion que me puedan brindar.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 12/07/2011, 12:29
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Traer nombre de campo de otra tabla

Hola jotaincubus:

La mejor opción es el INNER JOIN, sería más o menos así:

Código MySQL:
Ver original
  1. mysql> create table ciudades (id_ciudad int, nombre_ciudad varchar(20));
  2. Query OK, 0 rows affected (0.09 sec)
  3.  
  4. mysql> insert into ciudades values (1, 'Ciudad de México'),
  5.     -> (2, 'Guadalajara'), (3, 'Monterrey');
  6. Query OK, 3 rows affected (0.02 sec)
  7. Records: 3  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> select * from ciudades;
  10. +-----------+------------------+
  11. | id_ciudad | nombre_ciudad    |
  12. +-----------+------------------+
  13. |         1 | Ciudad de México |
  14. |         2 | Guadalajara      |
  15. |         3 | Monterrey        |
  16. +-----------+------------------+
  17. 3 rows in set (0.02 sec)
  18.  
  19. mysql> create table usuarios (id_usuario int, nombre_usuario varchar(20),
  20.     -> id_ciudad int);
  21. Query OK, 0 rows affected (0.08 sec)
  22.  
  23. mysql> insert into usuarios values (1, 'Usuario 1', 3),
  24.     -> (2, 'Usuario 2', 1), (3, 'Usuario 3', 2);
  25. Query OK, 3 rows affected (0.03 sec)
  26. Records: 3  Duplicates: 0  Warnings: 0
  27.  
  28. mysql> select * from usuarios;
  29. +------------+----------------+-----------+
  30. | id_usuario | nombre_usuario | id_ciudad |
  31. +------------+----------------+-----------+
  32. |          1 | Usuario 1      |         3 |
  33. |          2 | Usuario 2      |         1 |
  34. |          3 | Usuario 3      |         2 |
  35. +------------+----------------+-----------+
  36. 3 rows in set (0.00 sec)
  37.  
  38. mysql> select u.id_usuario, u.nombre_usuario, c.nombre_ciudad
  39.     -> from usuarios u inner join ciudades c
  40.     -> on u.id_ciudad = c.id_ciudad
  41.     -> order by u.id_usuario;
  42. +------------+----------------+------------------+
  43. | id_usuario | nombre_usuario | nombre_ciudad    |
  44. +------------+----------------+------------------+
  45. |          1 | Usuario 1      | Monterrey        |
  46. |          2 | Usuario 2      | Ciudad de México |
  47. |          3 | Usuario 3      | Guadalajara      |
  48. +------------+----------------+------------------+
  49. 3 rows in set (0.05 sec)

Saludos
Leo.
  #3 (permalink)  
Antiguo 12/07/2011, 12:48
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Traer nombre de campo de otra tabla

Hermano me dejaste con la boca abierta.... Eso si es explicar un tema, muchisimas gracias ya mismo me pongo a organizar todos mis querys

x)
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 12/07/2011, 14:15
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Traer nombre de campo de otra tabla

No tienes nada que agradecer... es un gusto poder ayudar.

Saludos
Leo

Etiquetas: campos, nombre, php, select, tabla, tracker
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 12:53.