Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Aiuto x mysql Join

  1. #1

    Aiuto x mysql Join

    Ciao,
    ho 2 tabelle Auto (IdAuto, Marca, Modello) e Spese (IdSpesa, IdAuto, TipologiaSpesa, Costo).

    TBL Auto

    1 | Fiat | Panda
    2 | Fiat | Bravo
    3 | Fiat | Punto


    TBL Spese

    1 | 1 | Meccanico | 500
    2 | 1 | Elettrauto | 250
    3 | 1 | Carrozzeria | 450
    4 | 2 | Meccanico | 200


    Vorrei fare una join che mi permetta di avere il seguente risultato...

    Marca | Modello | Tot Spesa
    Fiat | Panda | 1200
    Fiat | Bravo | 200
    Fiat | Punto | 0


    Ho provato vari modi , ma non riesco a visualizzare le auto che non hanno spese associate..
    Mi date una mano?

    Grazie
    Ciao

  2. #2
    usa left join

    from auto
    left join spese using(idauto)

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

  3. #3
    Ti ringrazio, ma con la left join come faccio a fare la sum delle spese?

    Grazie

  4. #4
    Originariamente inviato da mandrake_01
    Ti ringrazio, ma con la left join come faccio a fare la sum delle spese?

    Grazie
    Allo stesso modo di come fai gia' ora.

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

  5. #5
    Io ho fatto cosi'

    SELECT auto.marca,auto.modello, SUM(spese.costo) AS costo FROM auto
    LEFT JOIN spese using(idauto) group by spese.cod_auto


    Ottengo

    Fiat | Punto | NULL
    Fiat | Panda | 1200
    Fiat | Bravo | 200


    il problema è che le altre auto che ho nella tabl auto e che non hanno corrispondenza nella tbl spese non me le mostra, mi mostra solo la prima che ha valore costo NULL.

    Non capisco.. help me please

    Grazie 1000!
    Ciao

  6. #6
    Devi fare due query. non puoi mettere le due condizioni contemporaneamente.

    codice:
    SELECT auto.marca, auto.modello, SUM(spese.costo) AS costo 
    FROM auto
    LEFT JOIN spese using(idauto) 
    group by spese.cod_auto
    UNION
    SELECT auto.marca, auto.modello, '0'
    FROM auto
    LEFT JOIN spese using(idauto)
    where spese.idauto IS NULL

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

  7. #7
    Ok, grazie 1000!

    Ciao

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.