Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Query annidate o per forza con PHP?

    Ciao a tutti, ho il seguente problemino.

    In pratica ho 3 tabelle

    Utenti

    Ordini

    Prodotti

    Ogni tabella è collegata alla sua rispettiva tramite delle chiavi esterne

    ES:

    PRODOTTO 1 collegato all'ORDINE 1
    PRODOTTO 2 collegato all'ORDINE 1

    ------

    ORDINE 1 Collegato all' UTENTE 1


    Come posso, con un un'unica query, far uscire:

    Nome utente, totale ordini, totale prodotti ??

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    cioè in pratica tramite un'array vorresti stampare a video i risultati, giusto?

  3. #3
    Chi ha parlato di array?

    Per ora mi interessa la query

    Di solito ho sempre fatto..

    Query sugli utenti...
    e dentro il ciclo while conteggio ordini e prodotti

    Ora però voglio fare tutto in un'unica query...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    70
    se ho capito bene potresti usare una INNER JOIN tra le tre tabelle

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    70
    una cosa del genere:

    SELECT TAB1.*, TAB2.*, TAB3.*
    FROM TAB1 INNER JOIN TAB2 ON TAB1.tab1_id = TAB2.tab1_id
    INNER JOIN TAB3 ON TAB2.tab2_id = TAB3.tab2_id

  6. #6
    Si ma il discorso è che devo fare i totali della tabella prodotti, dei totali della tabella ordini.

    Non basta soltanto la INNER JOIN

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    70
    utilizzare GROUP BY con ordini e prodotti?

  8. #8
    E come? :|

    Consiedera sempre il seguente schema:


    PRODOTTO 1 collegato all'ORDINE 1
    PRODOTTO 2 collegato all'ORDINE 1
    PRODOTTO 3 collegato all'ORDINE 1
    PRODOTTO 4 collegato all'ORDINE 2
    PRODOTTO 5 collegato all'ORDINE 2

    ------

    ORDINE 1 Collegato all' UTENTE 1
    ORDINE 2 Collegato all' UTENTE 1

    UTENTE 1 ipotizziamo si chiami Mario Rossi..

    Quindi dovrei avere:

    Utente | Totale Ordini | Totale prodotti
    Mario Rossi | 2 | 5

  9. #9

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    70
    prova:

    tabella prodotti (prodotto,ordine) ed ordini (ordine,utente)

    CREATE VIEW view1 AS
    SELECT ordine, count(*) 'somma'
    FROM prodotti
    GROUP BY ordine


    SELECT utente,count(ordini.ordine),sum(somma)
    FROM ordini INNER JOIN view1
    ON ordini.ordine = view1.ordine
    GROUP BY utente


    poi associ il risultato con la tabella utenti

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.