Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    30

    MYSQL suggerimenti per vista

    Ho bisogno di recuperare dei dati da 6 tabelle differenti e per fare questo ho creato questa vista
    codice:
    CREATE VIEW vista_1 AS
    SELECT 
    t.id_ric,
    t.catid_1, 
    t1.descrizione AS descat_1, 
    t.catid_2,
    t2.descrizione AS descat_2, 
    t.catid_3,
    t3.descrizione AS descat_3, 
    t.id_marca,
    t4.marca,
    t.id_modello, 
    t5.modello, 
    t.data,
    t.codori 
    FROM t, t1, t2, t3, t4, t5
    WHERE
    t.catid_1=t1.idcat_1 
    AND 
    t.catid_2=t2.idcat_2 
    AND
    t.catid_3=t3.idcat_3
    AND
    t.id_marca=t4.id_marca 
    AND 
    t.id_modello=t5.id_modello
    Purtroppo mi sono accorto che in alcuni casi particolari questa clausola
    t.catid_3=t3.idcat_3 non viene rispettata perchè il valore di catid_3 non è presente nella t3 e di conseguenza il record non viene visualizzato.
    Esiste una istruzione/metodo per fare in modo che se la clausula non viene rispettata venga ignorata?
    Forse facendo delle OUTER JOIN?
    Purtroppo ho provato a documentarmi un po, ma non sono riuscito a farlo e spero a questo punto che qualcuno di voi esperti possa darmi una mano

    Grazie
    Ciao!

  2. #2
    se in una JOIN del tipo

    TabellaA JOIN TabellaB ON ...

    vuoi tutte le righe di TabellaA anche se non c'è corrispondenza in TabellaB devi usare la LEFT JOIN

    TabellaA LEFT JOIN TabellaB ON ...


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    30
    Ti ringrazio per la risposta.
    Scusami ma essendo per me un po complessa la query ho difficoltà a capire come fare questa JOIN visto che ho 6 tbl

  4. #4
    2 o 6 tbl il procedimento è sempre lo stesso

    tb1 join tb2 on ..... JOIN tb3 on ... JOIN tb4 on...

    tieni solo presente che più tbl metti, più lenta è la vista

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.