Visualizzazione dei risultati da 1 a 4 su 4

Discussione: query complessa

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118

    query complessa

    Ciao ragazzi, sto impazzendo a capire come fare una SOLA query ma non ci riesco..

    cercherò di essere più chiara possibile con un esempio simile:

    la casa Walt Disney fa diversi giornalini Topolino, Paperino, ognuno ha come "sede" Topolinea, Paperopoli ,

    con all'interno vari personaggi... Zio paperone, paperino, paperina. Ogni Personaggio ha una vita e dei nipoti.

    le tabelle sono:
    1) Giornalini (topolino, paperino)
    2) Sede (topolinea, paperopoli)
    3) Personaggi (Paperone, paperino, archimede)
    4) Abitazioni (Deposito, casetta, laboratorio)

    La query dovrebbe essere fatta dalla tabella personaggi... mi spiego: arrivata al personaggio, se scelgo Paperone dovrebbe recuperare i dati relativi alla sede dove si trova (Paperopoli) e su quale giornalino (Paperino) viene raccontato, dovrebbe recuperare, e qui non so come, l'abitazione (Deposito) corrispondente con le varie informazioni che ci sono (via, dollari, ecc.).

    Ovviamente se scelgo Paperiono avrei:

    1) Paperino (giornalino)
    2) Paperopoli
    3) Paperino
    4) Casetta (Nomi nipoti, via, squattrinato, jellato, ecc.)

    le prime tre tabelle sono Padre figlio, quando poi sono nella tabella Personaggi dovrei avere X tabelle collegate... dove X rappresenta l'abitazione dove si svolgono le avventure con dentro varie informazioni.

    Perdonatemi se non sn stata chiara... L.

  2. #2
    a parte il fatto che ostinarsi a fare UNA SOLA query potrebbe non essere la soluzione se non sappiamo come son fatte le tabelle come possiamo aiutarti?

  3. #3
    dovresti anche indicare (come da regolamento) che db stai usando

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    Originariamente inviato da optime
    a parte il fatto che ostinarsi a fare UNA SOLA query potrebbe non essere la soluzione se non sappiamo come son fatte le tabelle come possiamo aiutarti?
    Scusa Optime,

    ho fatto un db di esempio al volo. Uso mysql

    codice:
    SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
    
    CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
    USE `mydb` ;
    
    -- -----------------------------------------------------
    -- Table `mydb`.`Giornalini`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `mydb`.`Giornalini` (
      `id_giornalini` INT(11) NOT NULL AUTO_INCREMENT ,
      `nomegiornalino` VARCHAR(45) NULL ,
      PRIMARY KEY (`id_giornalini`) )
    ENGINE = InnoDB;
    
    
    -- -----------------------------------------------------
    -- Table `mydb`.`sede`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `mydb`.`sede` (
      `idsede` INT(11) NOT NULL AUTO_INCREMENT ,
      `sede` VARCHAR(45) NULL ,
      `Giornalini_id_giornalini` INT(11) NOT NULL ,
      PRIMARY KEY (`idsede`, `Giornalini_id_giornalini`) ,
      INDEX `fk_sede_Giornalini1` (`Giornalini_id_giornalini` ASC) ,
      CONSTRAINT `fk_sede_Giornalini1`
        FOREIGN KEY (`Giornalini_id_giornalini` )
        REFERENCES `mydb`.`Giornalini` (`id_giornalini` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB;
    
    
    -- -----------------------------------------------------
    -- Table `mydb`.`personaggi`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `mydb`.`personaggi` (
      `idpersonaggi` INT(11) NOT NULL AUTO_INCREMENT ,
      `sede_idsede` INT(11) NOT NULL ,
      `sede_Giornalini_id_giornalini` INT(11) NOT NULL ,
      `nomepersonaggio` VARCHAR(45) NULL ,
      PRIMARY KEY (`idpersonaggi`, `sede_idsede`, `sede_Giornalini_id_giornalini`) ,
      INDEX `fk_personaggi_sede1` (`sede_idsede` ASC, `sede_Giornalini_id_giornalini` ASC) ,
      CONSTRAINT `fk_personaggi_sede1`
        FOREIGN KEY (`sede_idsede` , `sede_Giornalini_id_giornalini` )
        REFERENCES `mydb`.`sede` (`idsede` , `Giornalini_id_giornalini` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB;
    
    
    -- -----------------------------------------------------
    -- Table `mydb`.`lavoro`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `mydb`.`lavoro` (
      `idlavoro` INT(11) NOT NULL AUTO_INCREMENT ,
      `ricchezza` VARCHAR(45) NULL ,
      `personaggi_idpersonaggi` INT(11) NOT NULL ,
      `personaggi_sede_idsede` INT(11) NOT NULL ,
      `personaggi_sede_Giornalini_id_giornalini` INT(11) NOT NULL ,
      PRIMARY KEY (`idlavoro`, `personaggi_idpersonaggi`, `personaggi_sede_idsede`, `personaggi_sede_Giornalini_id_giornalini`) ,
      INDEX `fk_lavoro_personaggi1` (`personaggi_idpersonaggi` ASC, `personaggi_sede_idsede` ASC, `personaggi_sede_Giornalini_id_giornalini` ASC) ,
      CONSTRAINT `fk_lavoro_personaggi1`
        FOREIGN KEY (`personaggi_idpersonaggi` , `personaggi_sede_idsede` , `personaggi_sede_Giornalini_id_giornalini` )
        REFERENCES `mydb`.`personaggi` (`idpersonaggi` , `sede_idsede` , `sede_Giornalini_id_giornalini` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB;
    
    
    -- -----------------------------------------------------
    -- Table `mydb`.`parenti`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `mydb`.`parenti` (
      `idparenti` INT(11) NOT NULL AUTO_INCREMENT ,
      `nomeperenti` VARCHAR(45) NULL ,
      `gradoparentela` VARCHAR(45) NULL ,
      `personaggi_idpersonaggi` INT(11) NOT NULL ,
      `personaggi_sede_idsede` INT(11) NOT NULL ,
      `personaggi_sede_Giornalini_id_giornalini` INT(11) NOT NULL ,
      PRIMARY KEY (`idparenti`, `personaggi_idpersonaggi`, `personaggi_sede_idsede`, `personaggi_sede_Giornalini_id_giornalini`) ,
      INDEX `fk_parenti_personaggi1` (`personaggi_idpersonaggi` ASC, `personaggi_sede_idsede` ASC, `personaggi_sede_Giornalini_id_giornalini` ASC) ,
      CONSTRAINT `fk_parenti_personaggi1`
        FOREIGN KEY (`personaggi_idpersonaggi` , `personaggi_sede_idsede` , `personaggi_sede_Giornalini_id_giornalini` )
        REFERENCES `mydb`.`personaggi` (`idpersonaggi` , `sede_idsede` , `sede_Giornalini_id_giornalini` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB;
    
    
    
    SET SQL_MODE=@OLD_SQL_MODE;
    SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
    SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
    spero vada bene

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.