Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202

    query dati duplicati in base a 2 campi uguali, o 1 dei due campi... è possibile???

    con questo codice

    Codice PHP:
    SELECT duplicate1.* FROM test AS duplicate1 JOIN (SELECT data_nascita FROM test GROUP BY data_nascita HAVING count(data_nascita) > 1) AS duplicate2 ON duplicate1.data_nascita duplicate2.data_nascita 
    visualizzo gli utenti con data identica...

    ma se avessi un 3° campo, come faccio a fare la query dicendo di farmi vedere i duplicati secondo la data di nascita oppure secondo il 3° campo, oppure tutte e due i campi (data di nascita, 3° campo) ???


    GRAZIE!!!

  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    uè... ma sai che non ho capito molto bene

    Riassumendo:
    Hai 1 tabella sulla quale devi eseguire una query per trovare i record
    che presentano 2 campi uguali (supponiamo A e B)
    oppure altri 2 campi uguali (supponiamo A e C) ?
    ...altri 5 anni di purga...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    .... immaginavo..................

    TABELLA: utenti --> (ID | UTENTE | DATA DI NASCITA | COLORE PREFERITO)

    riga 1: utente 1 | 10/08/1985 | verde
    riga 2: utente 2 | 10/08/1985 | rosso
    riga 3: utente 3 | 15/01/1975 | blu
    riga 4: utente 4 | 02/12/1988 | blu
    ... ecc.

    allora questo è un esempio... come si può vedere l'utente 1 e 2 hanno la data uguale (duplicata) e l'utente 3 e 4 hanno il colore uguale (duplicato)... a me non interessa il nome dell'utente. Quindi con il codice che ho riportato sopra, ho fatto la query estraendo i duplicati secondo la data di nascita.. io invece vorrei aggiungere un altro dato di base, cioè DATA DI NASCITA oppure IL COLORE PREFERITO...

    quindi se gli utenti hanno la data uguale, mi compariranno gli utenti con la data uguale; se gli utenti hanno il colore preferito uguale mi comprariranno gli utenti con il colore uguale; oppure può capitare che gli utenti abbiamo sia data uguale che colore preferito uguale, e qundi mi comparirranno sempre quegli utenti con i due campi uguali...

    quindi non so come aggiungere alla mia query anche il campo relativo al colore uguale...

    OK??

  4. #4
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Originariamente inviato da webboy82
    allora questo è un esempio... come si può vedere l'utente 1 e 2 hanno la data uguale (duplicata) e l'utente 3 e 4 hanno il colore uguale (duplicato)... a me non interessa il nome dell'utente. Quindi con il codice che ho riportato sopra, ho fatto la query estraendo i duplicati secondo la data di nascita.. io invece vorrei aggiungere un altro dato di base, cioè DATA DI NASCITA oppure IL COLORE PREFERITO...

    quindi se gli utenti hanno la data uguale, mi compariranno gli utenti con la data uguale; se gli utenti hanno il colore preferito uguale mi comprariranno gli utenti con il colore uguale; oppure può capitare che gli utenti abbiamo sia data uguale che colore preferito uguale, e qundi mi comparirranno sempre quegli utenti con i due campi uguali...

    quindi non so come aggiungere alla mia query anche il campo relativo al colore uguale...

    OK??
    non si capisce scusa..

    do per scontato vedendo la query che hai postato che il db è una versione > della 4.1.

    se vuoi il nome degli utenti prova questa, ma prendila con le molle:

    Codice PHP:
    SELECT *
    FROM test
    WHERE data_nascita
    IN 
    (
    SELECT data_nascita
    FROM test
    GROUP BY data_nascita
    HAVING count
    data_nascita ) >1
    )
    OR 
    colore_preferito
    IN 
    (
    SELECT colore_preferito
    FROM test
    GROUP BY colore_preferito
    HAVING count
    colore_preferito ) >1
    )
    ORDER BY data_nascitacolore_preferito 
    se vuoi le date di nascita che hanno più di un utente
    Codice PHP:
    SELECT data_nascita,count(data_nascita) as conta
    FROM test
    GROUP BY data_nascita
    HAVING count
    data_nascita ) >1

    in maniera simile per il colore:
    Codice PHP:
    SELECT colore_preferito,count(colore_preferito) as conta
    FROM test
    GROUP BY colore_preferito
    HAVING count
    colore_preferito) >1

    non si capisce bene il procedimento però, cosa hai e cosa vuoi ottenere. o meglio non capisco io scusa.
    le prove le ho fatto su MySQL 5.0 e soltanto con 6 records. testa per bene

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    vedi sotto

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    ho provato il codice che mi hai postato tu ENOA
    codice:
    SELECT *
    FROM test
    WHERE data_nascita
    IN (
    SELECT data_nascita
    FROM test
    GROUP BY data_nascita
    HAVING count( data_nascita ) >1
    )
    OR colore_preferito
    IN (
    SELECT colore_preferito
    FROM test
    GROUP BY colore_preferito
    HAVING count( colore_preferito ) >1
    )
    ORDER BY data_nascita, colore_preferito
    ed è infatti quello che cercavo, il risultato è quello che volevo ottenere....

    GRAZIE MILLE AMICO!

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.