Visualizzazione dei risultati da 1 a 10 su 10

Discussione: INNER JOIN

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140

    INNER JOIN

    Ho 2 tabelle così strutturate

    Prima tabella :
    id_utente
    cognome
    nome

    Seconda tabella
    id_utente
    tipo_acquisto

    Per selezionare tutti i nomi contenuti in tabella 1 e per ogni nome anche il tipo di acquisto contenuto in tabella 2 faccio così :
    codice:
    SELECT tb2.tipo_acquisto,tb1.cognome,tb1.nome
    codice:
    FROM tabella1 as tb1 INNER JOIN tabella2 as tb2 ON tb1.id_utente=tb2.id_utente
    Purtroppo però quando vado a visualizzare i risultati della query con un ciclo while se nella tabella 2 un utente ha effettuato 2 acquisti il suo nome mi esce 2 volte invece io vorrei farlo uscire 1 volta sola. Sapete come posso fare

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    Nessuno mi sà dare una mano ?

  3. #3
    e se ha fatto 2 acquisti, quale dei due dovrebbe visualizzare? forse non ha molto senso..

  4. #4
    Originariamente inviato da g.a.mimmo
    Nessuno mi sà dare una mano ?
    devi gestire il resultset . La query rende i record che rispondono alle caratteristiche richieste.

    Controlla il nome con un if se e' identico al precedente non lo stampi.


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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    Entrambi. In pratica se nella prima tabella ci sono gli utenti
    id_utente:1
    Cognome:Rossi
    Nome:Mario

    id_utente:2
    Cognome:Bianchi
    Nome:Giuseppe

    e nella seconda tabella ci sono i dati
    id_utente:2
    tipo_acquisto:Macchina

    id_utente:2
    tipo_acquisto:Stufa

    id_utente:1
    tipo_acquisto:Pentola

    Io vorrei che la Macchina e la Stufa acquistati dall'utente 2 la query me lo conteggiasse come unico record perchè appartiene sempre allo stesso utente.

  6. #6
    allora in effetti l'unica soluzione che mi viene in mente è quella suggerita da piero.mac.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    Leggevo del DISTINCT mi potrebbe aiutare in qualche modo ?

  8. #8
    Originariamente inviato da g.a.mimmo
    Leggevo del DISTINCT mi potrebbe aiutare in qualche modo ?
    in questo caso credo di no.
    avrebbe potuto servirti se avessi avuto un solo campo del quale evitare ripetizioni (invece tu hai nome e cognome) e inoltre tu vuoi in un record ciò che è contenuto in due..non credo si possa fare. però magari c'è qualcuno più esperto di me in materia..

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    usa php!

    codice:
    $old="";
    while( $sRow = mysql_fetch_array($ .....))
    {
     if( $old <> $sRow['cognome'] ){
            echo '
    '.$sRow['cognome']. ' ' .$sRow['nome'];
            $old=$sRow['cognome'];
     }
     echo $sRow['tipo_acquisto']. ' ';
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    Ok stabi grazie, avevo pensato già di mettere l'id utente in un array e poi far controllare se era già presente o no nello stesso però pensavo che ci fosse una bella funzione che mi selezionasse a piacer mio questo o quest'altro....ma mi sbagliavo

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.