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

como relacionar dos tablas en mysql

Estas en el tema de como relacionar dos tablas en mysql en el foro de Mysql en Foros del Web. Hola: Yo tengo la siguiente tabla de usuarios: `id` int(11) NOT NULL auto_increment, `user` char(20) NOT NULL, `pass` char(20) NOT NULL, `nombre` char(20) NOT NULL, ...
  #1 (permalink)  
Antiguo 17/01/2008, 08:34
 
Fecha de Ingreso: enero-2008
Mensajes: 24
Antigüedad: 16 años, 3 meses
Puntos: 0
como relacionar dos tablas en mysql

Hola:
Yo tengo la siguiente tabla de usuarios:

`id` int(11) NOT NULL auto_increment,
`user` char(20) NOT NULL,
`pass` char(20) NOT NULL,
`nombre` char(20) NOT NULL,
`apellidos` char(50) NOT NULL,
`email` char(50) NOT NULL,
`fechan` date NOT NULL,

si creo una tabla con el nombre:

Fotos

y en ella incluyootro:
`id` int(11) NOT NULL auto_increment,

q es loq tengo q hacer exactamente para q esten relacionadas?
si alguien me puede ayudar...
  #2 (permalink)  
Antiguo 17/01/2008, 09:07
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: como relacionar dos tablas en mysql

hola, aqui te dejo un link que explica muy bien lo que debes hacer, espero lo entiendas:
http://www.mysql-hispano.org/page.php?id=27&pag=1

pero bueno, si usas phpmyadmin y tus tablas son InnoDB es muy facil, solo creas las tablas y despues te fijas, tienes un link que dice vista de relaciones, alli solo tienes que crear la relacion que deseas, pero ojo, los campos a relacionar deben ser llaves (KEY)

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #3 (permalink)  
Antiguo 17/01/2008, 09:18
 
Fecha de Ingreso: enero-2008
Mensajes: 24
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: como relacionar dos tablas en mysql

muchas gracias me a servido de gran ayuda.
un saludo
  #4 (permalink)  
Antiguo 17/01/2008, 09:26
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 18 años
Puntos: 3
Re: como relacionar dos tablas en mysql

puedes hacer tambien
select tabla1.campo1, tabla1.campo2, tabla2.campo1, tabla2.campo2 from tabla1 INNER JOIN tabla2 ON tabla1.camporelacion = tabla2.camporelacion where condicion order by tabla#.campo

o en su efecto

select * from tabla1 inner join tabla2 on tabla1.campo = tabla2.campo where tabla1.campo = de tabla1 consultar

También puedes relacionar tablas sin usar las clausulas JOIN:

select * from Clientes, Pedidos where tabla1.campo = tabla2.campo and tabla#.campo = < tabla# a consultar
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #5 (permalink)  
Antiguo 17/01/2008, 09:43
 
Fecha de Ingreso: enero-2008
Mensajes: 24
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: como relacionar dos tablas en mysql

Bueno os voi a explicar lo q yo quiero hacer ya q no me entero muy bien:
Tengo una tabla usuarios donde kiero q se guarden los datos de cada uusario y luego en la tabla fotos quiero q se guarden las fotos subidas por cada uno de ellos y queria q se relacionasen el id para luego al consultar las tablas consultando el id de un usuario me salgan las fotos q a subido.
Gracias de todas formas
  #6 (permalink)  
Antiguo 17/01/2008, 09:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: como relacionar dos tablas en mysql

Tema trasladado a MySQL.

Por favor publica en los foros correctos.
  #7 (permalink)  
Antiguo 17/01/2008, 09:57
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: como relacionar dos tablas en mysql

bueno, la estructura de tus tablas seria asi mas o menos:

tabla usuarios
------------------
usuario_ID
usuarioNombre
usuarioApellidos
usuarioPass
-------------------

tabla fotos
-------------------
foto_ID
fotoNombre
fotoUsuarioID
-------------------

el campo fotoUsuarioID lo relacionas con el campo usuario_ID y a la hora de hacer la consulta que muestre todas las fotos de el usuario X es mas o menos asi:
Código PHP:
$usuario_ID $_GET['usuario_ID'// en este caso llega el ID del usuario por GET o URL
$query mysql_query("SELECT * FROM fotos WHERE fotoUsuarioID = '$usuario_ID'"
saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 17/01/2008, 10:08
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: como relacionar dos tablas en mysql

mira, me equivoque, lo que necesitas es esto:
Código PHP:
CREATE TABLE `fotos` (
  `
foto_IDint(11NOT NULL auto_increment,
  `
fotoNombrevarchar(20NOT NULL,
  `
fotoUsuarioIDint(11NOT NULL,
  
PRIMARY KEY  (`foto_ID`),
  
KEY `fotoUsuarioID` (`fotoUsuarioID`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=;


CREATE TABLE `usuarios` (
  `
usuario_IDint(11NOT NULL auto_increment,
  `
usuarioNombrevarchar(20NOT NULL,
  `
usuarioApellidovarchar(20NOT NULL,
  `
usuarioPassvarchar(20NOT NULL,
  
PRIMARY KEY  (`usuario_ID`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=;


-- 
-- 
esta es la relacion de las tablas
-- 
ALTER TABLE `fotos`
  
ADD CONSTRAINT `fotos_ibfk_1FOREIGN KEY (`fotoUsuarioID`) REFERENCES `usuarios` (`usuario_ID`) ON DELETE CASCADE ON UPDATE CASCADE
con este codigo ya tienes tus tablas relacionadas, pero leete el manual que te pase mas arriba para que entiendas bien.

saludos y suerte

PD-1: de todas formas, la consulta que te puse es la que debes usar para mostrar las fotos.

PD-2: por si el Brujo pasa por aqui, el tema estaba en php, como puedes ver, mientras posteaba el mensaje anterior, GatorV lo movio pa ca, valla tu sabes, no lo lances otra vez pa tras, la solucion es esta, saludetes
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #9 (permalink)  
Antiguo 17/01/2008, 13:15
 
Fecha de Ingreso: enero-2008
Mensajes: 24
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: como relacionar dos tablas en mysql

Hola de nuevo ya e solucionado el problema.
Lo que he echoi al final es crear otra tabla con el nombre fotos, en ella en incluido:

id
id_usuario
ruta

y cuando un usuario sube las fotos se guarda su nombre de usuario de la tabla usuarios en id usuario asi luego al hacer la consulta con el nombre de usuario me vale.
Muchas gracias de todas formas por vuestra ayuda.
Un saludo
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.
Tema Cerrado




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