Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di miki.
    Registrato dal
    Oct 2004
    Messaggi
    1,918

    [MySQL] fare una distinct

    devo fare una select.
    Considerate che ho un db cosi' formato

    parent_id (che puo' essere ripetuto, cioe' non e' unico)
    url (che sono tutti diversi)
    quality (intero da 1 a 5)
    type (intero da 1 a 5)

    esempio

    codice:
    [parent_id]     [url]                 [quality]       [type]
    2               pippo.html                3             1
    2               pluto.html                2             1
    3               paperino.html             3             2
    3               foo.html                  2             2
    3               gino.html                 3             1
    4               pino.html                 3             4
    4               test.html                 2             4
    devo fare una select che restituisca una distinct dei parent_id ma che mi dia l'url del recordset con il quality piu' alto e il type piu' basso di tutti quelli con lo stesso parent_id.

    Onestamente mi sono incartato e non riesco a capire come posso fare.

    Qualche idea?
    You cannot discover new oceans unless you have the courage to lose sight of the shore

    Caro Dio, quando nelle preghiere ti chiedevo di far morire quel pedofilo truccato, liftato,mentalmente disturbato e di colore indefinibile, non intendevo Michael Jackson.

  2. #2
    codice:
    SELECT distinct parent_id, url FROM ecc. ORDER BY quality DESC, type ASC
    Non sono sicuro del distinct

    Editato.

  3. #3
    Utente di HTML.it L'avatar di miki.
    Registrato dal
    Oct 2004
    Messaggi
    1,918
    Originariamente inviato da kylnas1
    codice:
    SELECT distinct parent_id, url FROM ecc. ORDER BY quality DESC, type ASC
    Non sono sicuro del distinct

    Editato.
    anch'io all'inizio avevo pensato cosi', ma non va bene perche' fa il distinct su parent_id e url, non solo sul parent_id
    You cannot discover new oceans unless you have the courage to lose sight of the shore

    Caro Dio, quando nelle preghiere ti chiedevo di far morire quel pedofilo truccato, liftato,mentalmente disturbato e di colore indefinibile, non intendevo Michael Jackson.

  4. #4
    Originariamente inviato da miki.
    anch'io all'inizio avevo pensato cosi', ma non va bene perche' fa il distinct su parent_id e url, non solo sul parent_id
    Con la parentesi?

    Tipo:

    SELECT distinct(parent_id), url...

  5. #5
    Originariamente inviato da miki.
    anch'io all'inizio avevo pensato cosi', ma non va bene perche' fa il distinct su parent_id e url, non solo sul parent_id
    il distinct di estende su tutti i campi elencati. devi usare i raggruppamenti.

    codice:
    select id,
        max(quality) as quality,
        min(type) as type
    from tabella
    group by id
    l'url essendo un campo a cui puo' non corrispondere sia il MIN() che il MAX() o entrambi, non e' significativo in questa query.



    @edit

    non sono stato chiaro e mi scuso....

    se vuoi l'url con max(quality) e l'url con min(type) devi prima identificare l'id relativo e poi puntare il select su quello specifico id. Si puo' fare con subquery ed union.

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

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.