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

    [mysql]query su tre tabelle

    Quale e' il modo migliore secondo voi per selezionare dati di un determinato id su tre tabelle che hanno in comune l'id stesso ?

  2. #2
    ...io ti consiglierei le LEFT JOIN....
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  3. #3
    L'id e' presente sicuramente su tutte e tre le tabelle quindi credo un left join non serva
    facciamo l'esempio che le tre tabelle siano

    tab1
    id
    cliente
    indirizzo

    tab2
    id
    prodotti cliente
    magazzino cliente

    tab3
    id
    macchina cliente
    lavorazioni cliente

    e che io voglia selezionare cliente, indirizzo, prodotti cliente, macchina cliente

    so bene che posso fare
    select tab1.cliente,tab1.indirizzo,tab2.prodotti cliente,tab3.macchina cliente from tab1,tab2,tab3 where ecc..
    ma vorrei capire se c'e' un modo piu performante e stilisticamente migliore

  4. #4
    Originariamente inviato da kappaekappa
    select tab1.cliente,tab1.indirizzo,tab2.prodotti cliente,tab3.macchina cliente from tab1,tab2,tab3 where ecc..
    ma vorrei capire se c'e' un modo piu performante e stilisticamente migliore
    questa tua e' una equi-join detta "stile theta" dove la corrispondenza della referenza fra tabelle viene impostata nel where ed e' assolutamente corrispondente alla INNER JOIN denominata "stile ANSI" dove i riferimenti sono nell clausola ON/USING.

    La preferenza dipende dalla leggibilita' che vuoi dare. In un caso imposti le referenze tabellari nel where, nell'altro nell' ON della JOIN.

    codice:
    select ....
    
     stile theta
    from tab1, tab2, tab3
    where tab1.id = tab2.id
    AND tab2.id = tab3.id
    
     stile ANSI
    from tab1
    inner join tab2 on tab2.id = tab1.id
    inner join tab3 on tab3.id = tab2.id
    personalmente preferisco lo stile ANSI per me piu' leggibile e modificabile

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Ti ringrazio proprio quello volevo sapere

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.