Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    JOIN tra 4 tabelle

    Raga, aiutino su legame tabelle

    Come faccio a legare una 4^ tabella ( t4.col1) che ha un campo univoco con la tabella t3 ?

    codice:
    FROM t1 JOIN (t2 LEFT JOIN t3 ON t2.col3 = t3.col3) ON t1.col1 = t2.col2
    Sono riuscito prendendo spunto da un esempio a legare 3 tabelle, ma devo aggiungere dei campi che si trovano in una 4^ e non riesco a capire come fare.


    Spero di essermi spiegato






    .

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Puoi postare un dump delle 4 tabelle, popolate con qualche record fittizio e mostrare il risultato che vorresti ottenere?

  3. #3
    Ciao,

    come da regolamento va indicato il nome della piattaforma utilizzata, gentilmente la potresti specificare?

    Grazie
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    Allora; utilizzo queste vers. di MySQL, PHP e Apache sia su Win XP PRO
    sia su Linux (RED HAT)

    Apache/2.2.14 (Win32) PHP/5.2.11
    Versione MySQL 5.0.87


    il recordset per capire come fare le join potrebbe essere:
    codice:
    codice_cliente | tipo | agente | codice_agente | articolo | qt | id_visita |
    So bene che non ha senso legare le qt e articoli senza fare operazioni, ma visto che c'è un campo univoco volevo legare anche questi giusto per prendere confidenza con le JOIN.

    In realtà come risultato finale,volevo riuscire ad ottenere con una Query o SubQuery;
    il SUM delle qt degli articoli ed il COUNT delle visite, comprensivo dei dati anagrafici di clienti e agenti, tutto nello stesso recordset.

    avere in sostanza tutti i clienti, e di questi chi ha effettuato degli ordini e quanti di questi sono stati visitati.

    Spero di essermi fatto capire

    Tabelle di esempio

    codice:
    CREATE TABLE IF NOT EXISTS `agenti` (
      `idAgente` int(11) NOT NULL auto_increment,
      `agente` varchar(150) NOT NULL,
      `codice_agente` varchar(9) NOT NULL,
      PRIMARY KEY  (`idAgente`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
    
    --
    -- Dump dei dati per la tabella `agenti`
    --
    
    INSERT INTO `agenti` (`idAgente`, `agente`, `codice_agente`) VALUES
    (1, 'giorgio', '0001'),
    (2, 'pippo', '0002'),
    (3, 'marco', '0003');
    
    -- --------------------------------------------------------
    
    --
    -- Struttura della tabella `clienti`
    --
    
    CREATE TABLE IF NOT EXISTS `clienti` (
      `idCliente` int(11) NOT NULL auto_increment,
      `cod_cliente` varchar(9) NOT NULL,
      `tipo` char(1) NOT NULL,
      PRIMARY KEY  (`idCliente`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;
    
    --
    -- Dump dei dati per la tabella `clienti`
    --
    
    INSERT INTO `clienti` (`idCliente`, `cod_cliente`, `tipo`) VALUES
    (1, '0001', 'B'),
    (2, '0002', 'S'),
    (3, '0003', 'B'),
    (4, '0004', 'B'),
    (5, '0005', 'B'),
    (6, '0006', 'M'),
    (7, '0007', 'S'),
    (8, '0008', 'S'),
    (9, '0009', 'S'),
    (10, '0010', 'S'),
    (11, '0011', 'M'),
    (12, '0012', 'M'),
    (13, '0013', 'M'),
    (14, '0014', 'S'),
    (15, '0015', 'B'),
    (16, '0016', 'S'),
    (17, '0017', 'B'),
    (18, '0018', 'B'),
    (19, '0019', 'S');
    
    -- --------------------------------------------------------
    
    --
    -- Struttura della tabella `ordini`
    --
    
    CREATE TABLE IF NOT EXISTS `ordini` (
      `idOrdine` int(11) NOT NULL auto_increment,
      `cod_cliente` varchar(9) NOT NULL,
      `articolo` varchar(255) NOT NULL,
      `qt` int(5) NOT NULL,
      `codice_agente` varchar(9) NOT NULL,
      PRIMARY KEY  (`idOrdine`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
    
    --
    -- Dump dei dati per la tabella `ordini`
    --
    
    INSERT INTO `ordini` (`idOrdine`, `cod_cliente`, `articolo`, `qt`, `codice_agente`) VALUES
    (1, '0001', 'articolo 1', 3, '0001'),
    (2, '0001', 'articolo 2', 2, '0001'),
    (3, '0004', 'articolo 2', 4, '0002'),
    (4, '0004', 'articolo 5', 2, '0002');
    
    -- --------------------------------------------------------
    
    --
    -- Struttura della tabella `visite`
    --
    
    CREATE TABLE IF NOT EXISTS `visite` (
      `idVisita` int(11) NOT NULL auto_increment,
      `agente` varchar(150) NOT NULL,
      `codice_cliente` varchar(9) NOT NULL,
      PRIMARY KEY  (`idVisita`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
    
    --
    -- Dump dei dati per la tabella `visite`
    --
    
    INSERT INTO `visite` (`idVisita`, `agente`, `codice_cliente`) VALUES
    (1, 'giorgio', '0001'),
    (2, 'pippo', '0002'),
    (3, 'pippo', '0004'),
    (4, 'marco', '0005'),
    (5, 'giorgio', '0006'),
    (6, 'giorgio', '0018'),
    (7, 'giorgio', '0019'),
    (8, 'pippo', '0008'),
    (9, 'pippo', '0015'),
    (10, 'marco', '0016'),
    (11, 'giorgio', '0012'),
    (12, 'giorgio', '0013');


    Denghiu





    .

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 © 2025 vBulletin Solutions, Inc. All rights reserved.