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

    [Aiuto] Query con JOIN multiple

    Buona domenica a tutti.

    Mi trovo a dover costruire una query piuttosto complessa che prevede 3 JOIN. Sto impazzendo per riuscire a trovare la sintassi corretta.
    Qualcuno potrebbe darmi una mano?
    Ho disegnato uno schemino delle quattro tabelle coinvolte:



    In sostanza mi servirebbe partire da una lista dei prodotti contenuti nella tabella 'Tabella 1', ho bisogno che le join non siano "legate" (nel senso, un prodotto può avere anche nessuna categoria o nessun cliente associato. Allo stesso tempo potrebbe avere associato una categoria (e nessun cliente) o viceversa (un cliente e nessuna categoria).

    Non prestate troppa attenzione alla logica "semantica" di questo schema. Nel mio script non devo mettere in relazione prodotti con clienti o categorie, ma la struttura è quella che ho illustrato di sopra. Al posto di "prodotto", "categoria" o "cliente" potete sostituirci "pippo", "pluto" e "paperino".

    Spero che qualcuno riesca a darmi una mano così imparerei una volta per tutto l'uso corretto delle join multiple

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ciao. A grandi linee la query è qualcosa del genere

    codice:
    select t1.*,t2.*,t3.*,t4.*
    from tabella1 as t1
    left join tabella3 as t3 on t1.id_prodotto = t3.id_prodotto
    left join tabella2 as t2 on t2.id_categoria = t3.id_categoria
    left join tabella4 as t4 on t4.id_cliente = t2.id_cliente
    Poi rimuovi gli asterischi e seleziona solo i campi che ti servono.

  3. #3
    Originariamente inviato da nicola75ss
    Ciao. A grandi linee la query è qualcosa del genere

    codice:
    select t1.*,t2.*,t3.*,t4.*
    from tabella1 as t1
    left join tabella3 as t3 on t1.id_prodotto = t3.id_prodotto
    left join tabella2 as t2 on t2.id_categoria = t3.id_categoria
    left join tabella4 as t4 on t4.id_cliente = t2.id_cliente
    Poi rimuovi gli asterischi e seleziona solo i campi che ti servono.
    io al posto delle left join, userei le outer join...

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