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

problemas con consulta sobre 2 tablas

Estas en el tema de problemas con consulta sobre 2 tablas en el foro de Mysql en Foros del Web. la tabla producto i foto tienen una relacion de 1:1 la ruta de la fotos simpre me devuelve la primera /php/imagenes/grande/producto_grande.jpg /php/imagenes/pequena/producto_pequeno.jpg y no se ...
  #1 (permalink)  
Antiguo 26/12/2009, 14:58
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 2 meses
Puntos: 1
problemas con consulta sobre 2 tablas

la tabla producto i foto tienen una relacion de 1:1

la ruta de la fotos simpre me devuelve la primera /php/imagenes/grande/producto_grande.jpg /php/imagenes/pequena/producto_pequeno.jpg y no se porque
en el segundo tendria que salir /php/imagenes/grande/producto_grande1.jpg /php/imagenes/pequena/producto_pequeno1.jpg i siempre sale la misma fotografia

select nombre_producto,ruta_foto_grande,ruta_foto_pequena ,descripcion_producto from producto,foto where id_producto=producto_id_foto group by nombre_producte

nombre_producto ruta_foto_grande ruta_foto_pequena descripcion_producto
producto /php/imagenes/grande/producto_grande.jpg /php/imagenes/pequena/producto_pequeno.jpg descripcion producto
producto1 /php/imagenes/grande/producto_grande.jpg /php/imagenes/pequena/producto_pequeno.jpg descripcion producto1





CREATE TABLE IF NOT EXISTS producto (
id_producto SMALLINT (3) UNSIGNED ZEROFILL NOT NULL,
nombre_producto VARCHAR(25) UNIQUE NOT NULL,
descripcion_producto VARCHAR(550) NOT NULL,
producto_id_foto SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
producto_id_categoria SMALLINT (2) UNSIGNED ZEROFILL NOT NULL,

CONSTRAINT pk_id_producto PRIMARY KEY (id_producto),
CONSTRAINT fk_producto_id_foto FOREIGN KEY (producto_id_foto)
REFERENCES foto(id_foto),
CONSTRAINT fk_producto_id_categoria FOREIGN KEY (producto_id_categoria) REFERENCES categoria(id_categoria)

)ENGINE=InnoDB;

INSERT INTO producte (id_producte,nombre_producto,descripcion_producto, producto_id_foto,producto_id_categoria) VALUES (0,'producto','descripcion producto0',0000,0);
INSERT INTO producte (id_producte,nombre_producto,descripcion_producto, producto_id_foto,producto_id_categoria) VALUES (1,'producto1','descripcion producto1',0001,0);

CREATE TABLE IF NOT EXISTS foto (
id_foto SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
nombre_foto VARCHAR(50) UNIQUE NOT NULL,
ruta_foto_grande VARCHAR(50) NOT NULL,
ruta_foto_pequena VARCHAR(50) NOT NULL,
foto_id_categoria SMALLINT (2) UNSIGNED ZEROFILL NOT NULL,

CONSTRAINT pk_id_foto PRIMARY KEY (id_foto),
CONSTRAINT fk_foto_id_categoria FOREIGN KEY (foto_id_categoria) REFERENCES categoria(id_categoria)

)ENGINE=InnoDB;

INSERT INTO foto (id_foto,nombre_foto,ruta_foto_grande,ruta_foto_pe quena,foto_id_categoria) VALUES (0000,'producto','/php/imagenes/grande/producto_grande.jpg','/php/imagenes/pequena/producto_pequeno.jpg',00);
INSERT INTO foto (id_foto,nombre_foto,ruta_foto_grande,ruta_foto_pe quena,foto_id_categoria) VALUES (0001,'producto1','/php/imagenes/grande/producto1_grande.jpg','/php/imagenes/pequena/producto1_pequeno.jpg',00);
  #2 (permalink)  
Antiguo 27/12/2009, 07:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problemas con consulta sobre 2 tablas

No haces la andación de las tablas con join, ademas veo que los constraint se crean al reves. Si es fuese una relación 1:1 bastaría con poner en cualquiera de las tablas el id de la otra y no sería necesario una foreign key.
Como creas las tablas, producto tiene dependencia de fotos al exigir al poducto insertar un id_foto. Lo intenté de esta forma y creo que es el resultado que buscas

Código SQL:
Ver original
  1. SELECT nombre_producto,ruta_foto_grande,ruta_foto_pequena ,descripcion_producto
  2. FROM producto p INNER JOIN foto f
  3. ON p.producto_id_foto = f.id_foto GROUP BY nombre_producto;

Nos cuents como te va
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 00:48.