Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387

    InnerJoin tra 3 tabelle

    Buonasera a tutti...
    Credo l'ultima query prima di potermi dedicare ad un po' di ozio

    Vi chiedo umilmente un favore sulla costruzione di una query SQL che non mi viene.

    3 Tabelle:

    AGENZIE > CLIENTI > ORDINI

    I campi in comune sono:

    agenzie.idAgenzia <=> clienti.idAgenzia <=> ordini.idCliente

    Ora vorrei tirarmi una riga simile:

    codice:
    id cliente || nome cliente || agenzia || quantita ordini
    
    12          || rossi spa      || prima    || 5
    13          || verdi srl       || franco   || 6
    25          || zucchi snc    || prima    || 1
    potreste aiutarmi? non ne vengo minimamente a capo... ho provato con una query simile...

    codice:
    SELECT customers.idCustomer, agencies.nameAgency AS nameAgency,
     COUNT( ordini.idOrdini ) AS totaleOrdini
    FROM customers
    INNER JOIN agencies ON customers.idAgency = agencies.idAgency
    INNER JOIN ordini ON customers.idCustomer = ordini.idCustomer
    ORDER BY dateCustomer
    Il problema che mi da tutti NULL e ordini == 0 se non ci sono ordini, mentre vorrei che se non ci fossero ordini mi comparisse il valore 0 ma comunque tutti gli altri valori chiesti (nome agenzia, nome cliente etc etc etc)

    grazie mille!

  2. #2
    dovresti usare left join per la tabella ordini e raggruppare per id_cliente.

    qualcosa di simile:

    codice:
    SELECT customers.idCustomer, agencies.nameAgency AS nameAgency,
     COUNT( ordini.idOrdini ) AS totaleOrdini
    FROM customers
    INNER JOIN agencies ON customers.idAgency = agencies.idAgency
    LEFT JOIN ordini ON customers.idCustomer = ordini.idCustomer
    GROUP BY customers.idCustomer
    ORDER BY dateCustomer

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    Funziona perfettamente....
    mi mancava quindi il GROUP BY...

    Grazie mille!

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.