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

Inner join

Estas en el tema de Inner join en el foro de Mysql en Foros del Web. Saludos a todos y todas, tengo un simple problema que me ha complicado la existencia durante varios dias. Segun entiendo JOIN se usa para enlazar ...
  #1 (permalink)  
Antiguo 07/02/2013, 13:53
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 222
Antigüedad: 13 años, 5 meses
Puntos: 32
Inner join

Saludos a todos y todas, tengo un simple problema que me ha complicado la existencia durante varios dias.
Segun entiendo JOIN se usa para enlazar dos tablas mediante un campo comun y de ese modo abarcar en una consulta los datos de dos tablas. Hasta ahi, creo que voy bien.
Mi problema.
Tengo dos tablas, una de registro y otra de información en ambas tablas tengo la columna id.
Tabla "base"
Código SQL:
Ver original
  1. CREATE TABLE `base` (
  2.   `id` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `nombre` text COLLATE latin1_general_ci NOT NULL,
  4.   `edad` INT(11) NOT NULL,
  5.   `email` text COLLATE latin1_general_ci NOT NULL,
  6.    `ciudad` text COLLATE latin1_general_ci NOT NULL,
  7.   `codigo` INT(11) NOT NULL,
  8.   `fecha` VARCHAR(20) COLLATE latin1_general_ci NOT NULL,
  9.   `contra` VARCHAR(15) COLLATE latin1_general_ci NOT NULL,
  10.  PRIMARY KEY (`id`)
Tabla "mensajes"
Código SQL:
Ver original
  1. CREATE TABLE `mensajes` (
  2.   `id` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `De` text COLLATE latin1_general_ci NOT NULL,
  4.   `Para` text COLLATE latin1_general_ci NOT NULL,
  5.   `Mensaje` text COLLATE latin1_general_ci NOT NULL,
  6.   `Fecha` VARCHAR(20) COLLATE latin1_general_ci NOT NULL,
  7.   `ip` VARCHAR(30) COLLATE latin1_general_ci NOT NULL,
  8.   PRIMARY KEY (`id`)

Aquí la pregunta. Necesito generar una consulta tal que a partir de el dato del campo 'De' de la tabla mensajes (es el código de usuario, el mismo que está en la tabla "base" en la columna codigo) me entregue el nombre (de la columna nombre de la tabla "base") para luego hacer un bucle y encontrar todas las coincidencias.

Para mi es un enredo y agradezco la paciencia de quien leyendo esto intenta ayudarme. Estaré pendiente para responder dudas de este "moño de vieja"
__________________
La ciencia al poder. Pazciencia ya viene
  #2 (permalink)  
Antiguo 07/02/2013, 14:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Inner join

Lo que si no entiendo es porque publicar un problema a todas luces de base de datos en el foro de php.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/02/2013, 14:31
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: Inner join

Buenas,

Mira no entiendo una cosa en tu estructura de las tablas respecto a lo que explicas de como estan relacionadas las dos tablas, hablo "base.codigo" y "mensajes.De", ambos son de tipo diferente, si es como explicas, segun entendi, deberias cambiar el campo De a int(11),

Y te quedaria asi la consulta:

Select base.nombre as msgDe, mensajes.* From base INNER JOIN mensajes ON base.codigo = mensaje.de


Saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #4 (permalink)  
Antiguo 07/02/2013, 14:39
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 222
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Inner join

Mil gracias rodno, probaré tu solución desde ya muy agradecido. Si equivoque el foro mil disculpas y si es posible el administrador podría hacerme el favor de acomodarlo donde corresponda.
Al de la guitarrita... nada
__________________
La ciencia al poder. Pazciencia ya viene

Etiquetas: php
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:58.