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

    MySql fare una select su 3 tabelle

    Ho 3 tabelle
    Nella prima ho 1.000 record di prodotti
    Nella seconda so se il prodotto è un alimentare o un non alimentare
    Nella terza posso sapere se è scontato o meno.


    Io so fare un left join tra due tabelle per ricavare le informazioni ma non lo so fare su 3 tabelle!



    Vediamo il left join su 2 tabelle che mi da risultato corretto:

    select prodotto, prezzo, mele, peso, tabella_tipologia.campo_tipo, from tipologia left join tabella_prodotti ON tabella_prodotti.ID=tipologia.ID


    Vediamo il left join su 3 tabelle:

    Io vorrei però sapere anche se il prodotto è scontato o meno e questo lo posso verificare solo dalla tabella sconti che ha 2 campi e 2 record Campo_ID con record 1 2 e Campo_Scontato con record NO SI.



    Come faccio a fare un join anche con la tabella sconti?

    select prodotto, prezzo, mele, peso, Campo_scontato, tabella_tipologia.campo_tipo, from tipologia left join tabella_prodotti ON tabella_prodotti.ID=tipologia.ID


    SoleandMare

  2. #2
    Per poterlo fare nella tabella prodotti devi avere un flag con scontato_id che porti l'id della tabella sconti. Ma se nella tabella sconti ha solo si/no tanto vale mettere direttamente scontato si/no nella tabella prodotti.

    Sarebbe diverso se nella tabella sconti tu avessi degli sconti variabili per tipo di prodotto e/o per quantita' e/o nel tempo.

    Rimane il fatto che per fare una unione ci deve essere un legame tra le due tabelle. Come hai infatti tra le prime due presentate-



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

  3. #3
    Originariamente inviato da piero.mac
    Per poterlo fare nella tabella prodotti devi avere un flag con scontato_id che porti l'id della tabella sconti. Ma se nella tabella sconti ha solo si/no tanto vale mettere direttamente scontato si/no nella tabella prodotti.

    Sarebbe diverso se nella tabella sconti tu avessi degli sconti variabili per tipo di prodotto e/o per quantita' e/o nel tempo.

    Rimane il fatto che per fare una unione ci deve essere un legame tra le due tabelle. Come hai infatti tra le prime due presentate-


    Ok ipotiziamo che nella tabella scontato io abbia anche il campo ID, che mi lega con entrambe le tabelle.
    (Vorrei giusto capire come si fa un left join con più Piu di 2 tabelle)

    Giusto per capire come si fa un left join con più di 2 tabelle.

    Come dovrei scrivere la query?

    select prodotto, prezzo, mele, peso, tabella_sconti.campo_scontato , tabella_tipologia.campo_tipo, from tipologia left join tabella_prodotti ON tabella_prodotti.ID=tipologia.ID ON tabella_sconti.ID=tipologia.ID

    Sapresti dirmi se l'aggiunta in verde è corretta?


    Grazie,

    Sole and Mare

  4. #4
    Ti conviene usare l'alias per il nome della tabella. la query andrebbe fatta nel seguente modo:
    codice:
    SELECT prodotto, prezzo, mele, peso, 
    sco.campo_scontato, tip.campo_tipo
    FROM tipologia tip
    LEFT JOIN tabella_prodotti pro ON pro.ID = tip.ID 
    LEFT JOIN tabella_sconti sco ON sco.ID = tip.ID
    WHERE tip.tipo_merce = 'mele'   // <-  per esempio
    GROUP BY ....
    HAVING ...
    ORDER BY 
    LIMIT
    Ovviamente e' a titolo esemplificativo solo per la sintassi da usare


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

  5. #5
    Originariamente inviato da piero.mac
    Ti conviene usare l'alias per il nome della tabella. la query andrebbe fatta nel seguente modo:
    codice:
    SELECT prodotto, prezzo, mele, peso, 
    sco.campo_scontato, tip.campo_tipo
    FROM tipologia tip
    LEFT JOIN tabella_prodotti pro ON pro.ID = tip.ID 
    LEFT JOIN tabella_sconti sco ON sco.ID = tip.ID
    WHERE tip.tipo_merce = 'mele'   // <-  per esempio
    GROUP BY ....
    HAVING ...
    ORDER BY 
    LIMIT
    Ovviamente e' a titolo esemplificativo solo per la sintassi da usare

    Grazie!

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.