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

Relacion uno a muchos entre 3 tablas

Estas en el tema de Relacion uno a muchos entre 3 tablas en el foro de Bases de Datos General en Foros del Web. PERDON POR LA PREGUNTA PERO TENGO ESTE PEQUEÑO PROBLEMA Y YA OLVIDE COMO RESOLVERLO, tengo 3 tablas articulos->categorias->familias cada articulo debe pertenecer a una categoria ...
  #1 (permalink)  
Antiguo 22/11/2012, 01:14
 
Fecha de Ingreso: noviembre-2010
Mensajes: 105
Antigüedad: 13 años, 5 meses
Puntos: 0
Exclamación Relacion uno a muchos entre 3 tablas

PERDON POR LA PREGUNTA PERO TENGO ESTE PEQUEÑO PROBLEMA Y YA OLVIDE COMO RESOLVERLO, tengo 3 tablas articulos->categorias->familias
cada articulo debe pertenecer a una categoria y cada categoria pertenece a una familia...lo que necesito es COMO PUEDO OBTENER LOS ARTICULOS QUE PERTENECEN A UNA CATEGORIA...SE QUE MUCHAS CATEGORIAS PUEDEN PERTENECER A UNA SOLA FAMILIA...MEJOR DICHO LA RELACION ESTA ASI


el codigo

Código:
-- -----------------------------------------------------
-- Table `Familias`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Familias` ;

CREATE  TABLE IF NOT EXISTS `Familias` (
  `idFamiias` INT NOT NULL AUTO_INCREMENT ,
  `Cod_familia` INT NOT NULL ,
  `Nom_familia` VARCHAR(400) NOT NULL ,
  PRIMARY KEY (`idFamiias`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Categorias`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Categorias` ;

CREATE  TABLE IF NOT EXISTS `Categorias` (
  `idCategorias` INT NOT NULL AUTO_INCREMENT ,
  `Cod_Categoria` INT NOT NULL ,
  `Nom_Categoria` VARCHAR(400) NOT NULL ,
  `Familias_idFamiias` INT NOT NULL ,
  PRIMARY KEY (`idCategorias`) ,
  CONSTRAINT `fk_Categorias_Familias1`
    FOREIGN KEY (`Familias_idFamiias` )
    REFERENCES `Familias` (`idFamiias` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE INDEX `fk_Categorias_Familias1_idx` ON `Categorias` (`Familias_idFamiias` ASC) ;


-- -----------------------------------------------------
-- Table `articulos`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `articulos` ;

CREATE  TABLE IF NOT EXISTS `articulos` (
  `idarticulos` INT NOT NULL AUTO_INCREMENT ,
  `codigo` INT NOT NULL ,
  `nombre` VARCHAR(400) NOT NULL ,
  `referencia` VARCHAR(400) NULL ,
  `detalle` VARCHAR(400) NULL ,
  `cantidad_web` INT NOT NULL ,
  `cantidad_prepedido` INT NULL ,
  `Fabricante` VARCHAR(400) NOT NULL ,
  `Estado` CHAR NOT NULL ,
  `Proveedor_idProveedor` INT NOT NULL ,
  `Categorias_idCategorias` INT NOT NULL ,
  `imagen` VARCHAR(400) NULL ,
  `articuloscol` VARCHAR(45) NULL ,
  `articuloscol1` VARCHAR(45) NULL ,
  PRIMARY KEY (`idarticulos`) ,
  CONSTRAINT `fk_articulos_Proveedor1`
    FOREIGN KEY (`Proveedor_idProveedor` )
    REFERENCES `Proveedor` (`idProveedor` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_articulos_Categorias1`
    FOREIGN KEY (`Categorias_idCategorias` )
    REFERENCES `Categorias` (`idCategorias` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE INDEX `fk_articulos_Proveedor1_idx` ON `articulos` (`Proveedor_idProveedor` ASC) ;

CREATE INDEX `fk_articulos_Categorias1_idx` ON `articulos` (`Categorias_idCategorias` ASC) ;
por ejemplo la familia 0 es textos escolares...alli existen diferentes categorias....juvenil, primari,media, etc...y un articulo pertenece a una de esas categorias (solo a una) necesito los articulos que pertenecen a una familia..gracias por la ayuda...
  #2 (permalink)  
Antiguo 22/11/2012, 07:18
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: Relacion uno a muchos entre 3 tablas

De manual.
Si sabes hacer un INNER JOIN entre dos tablas, sabes hacer el INNER JOIN en 3, 4, 5, o N tablas.
Lo único que tienes que ver es qué campo se relaciona entre cada par.
Código MySQL:
Ver original
  1. ...
  2. FROM articulos A
  3.     INNER JOIN categorias C A.Categorias_idCategorias = C.idCategorias
  4.     INNER JOIN familias F C.Familias_idFamiias = F.idFamiias
  5. ...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: muchos, relacion, tabla, tablas
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 06:05.