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

    [MySql] Elementi Duplicati

    Ciao a tutti, vi spiego un pò la mia situazione, ho queste due tabelle

    codice:
    Tabella CREDITI
    =============================
    ID  Utente   | Punti | Nome Utente
    =============================
    1               |2       |Pino
    2               |9       |Luca
    3               |1       |Antonio
    4               |0       |Ciccio
    -------------------------------------
    
    Tabella Prodotti vinti
    =============================
    ID  Utente     | Prodotto vinti
    =============================
    1                 |pendrive
    2                 |fotocamera
    1                 |hard disk
    3                 |occhiali
    4                 |nulla
    2                 |obbiettivo fotocamera
    -------------------------------------
    La prima tabella contiene l'informazione degli utenti iscritti, la seconda tabella invece contiene gli id dagli utenti (prelevabili dalla prima tabella) più i prodotti che l'utente ha vinto.

    Ora ho creato una query che prelevi tutti gli utenti che hanno i crediti in attivo (superiori a 0), una volta prelevati gli ID di questi utenti faccio una ricerca nella tabella premi vinti.
    Ora come si capisce la query mi resituira' che l'utente 1 ha preso 2 premi cosi come l'utente 2.
    Ora io voglio che non mi vengono elencati tutti i premi vinti dagli utenti con crediti attivi, ma voglio che mi elenchi in modo casuale solo uno dei premi vinti dai utenti vincitori. Esempio la query ora mi dira'
    codice:
    1 pendrive
    2 fotocamera
    1 harddisk
    3 occhiali
    2 obbiettivo fotocamera
    Come si vede ho tutti i premi vinti dagli utenti in attivo, ma nell'elenco ci sono 2 volte gli id 1 e 2 con i rispettivi premi. Io invece voglio che la query mi resistuisca si tutti gli utenti che hanno vinto i premi ma non voglio che gli escano in lista 2 id uguali (esempio 1 pendrive 1 harddisk). Inoltre voglio che la query quando viene lanciata è vede degli id che hanno preso più premi (es ID 1), mi deve resituire un premio a caso tra quelli vinti da tali id.

    Come devo fare per fare ciò?=D

    Un po contorto, spero che mi avete capito

  2. #2
    up

  3. #3
    up

  4. #4
    uppete

  5. #5
    Prova a scrivere la query che stai usando.
    Lasciando per un momento perdere la parte di casualità dei premi, prova a fare una giunzione tra la tabella degli utenti e la tabella dei premi raggruppata per id, usando un max sulla colonna dei prodotti vinti

  6. #6
    Originariamente inviato da Potacchione
    Prova a scrivere la query che stai usando.
    Lasciando per un momento perdere la parte di casualità dei premi, prova a fare una giunzione tra la tabella degli utenti e la tabella dei premi raggruppata per id, usando un max sulla colonna dei prodotti vinti
    Questo è quello che mi hai chiesto?
    codice:
    SELECT crediti.IDUtente, crediti.Punti  FROM crediti, prodotti WHERE prodotti.IDUtente = crediti.IDUtente AND crediti.Punti > 0
    Codi pesco tutti gli ID degli utenti che hanno più di 0 punti presenti nella tabella prodotti. Ma ora voglio che se lo stesso utente ha vinto più prodotti , il programma mi dovrà dire random un prodotto che l'utente ha vinto tra tutti i premi vinti

    Come posso fare?

    Ciao!

  7. #7

  8. #8
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    codice:
    SELECT prodotti.Prodotto, crediti.Punti,crediti.NomeUtente 
    FROM prodotti
    INNER JOIN crediti ON crediti.idUtente = prodotti.IdUtente 
    WHERE crediti.Punti>0
    GROUP BY prodotti.idUtente
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  9. #9
    Originariamente inviato da las
    codice:
    SELECT prodotti.Prodotto, crediti.Punti,crediti.NomeUtente 
    FROM prodotti
    INNER JOIN crediti ON crediti.idUtente = prodotti.IdUtente 
    WHERE crediti.Punti>0
    GROUP BY prodotti.idUtente
    Ciao, innanzitutto grazie, ma secondo me non ci siamo capiti

    Se per esempio mi capita un utente il cui ID è uguale ad 1 ed ha preso 3 premi. Io voglio che il programma mi elenca in modo casuale uno dei premi che quel utente ha vinto.

    "Semplicemente" io devo vedere dalla tabella CREDITI gli ID degli utenti che hanno più di 0 punti. Poi dalla tabella Prodotti vinti devo mostrare TUTTI gli utenti che hanno vinto e le vincite, MA se un utente ha vinto più premi, io voglio che il programma mi mostri in modo "casuale" solamente un premio TRA i premi vinti.

    Spero di essere stato chiaro ...ad ogni modo grazie a tutti anticipatamente

  10. #10

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.