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

    Query per concatenare i valori

    Ciao a tutti, ho un problema che sto cercando di risolvere, ho una tabella così:

    TABELLA campionati_SerieA
    id_s_s | idsquadra | id_stagione
    -----------------------------------
    1 | 46 | 1
    2 | 51 | 1
    3 | 20 | 2
    4 | 46 | 2
    5 | 51 | 2
    6 | 46 | 3
    7 | 69 | 3
    8 | 51 | 4
    ecc..

    Correlata a TABELLA squadre_SerieA

    id_squadra | nome_squadra
    -----------------------------------
    46 | Milan
    51 | Inter
    52 | Juventus
    ecc...

    Vorrei che il risultato fosse cos�:

    presenze | squadre
    -----------------
    88 | Inter
    87 | Juventus,Torino
    85 | Milano,Fiorentina,Bologna
    ecc..

    Attualmente sto ragionando su questa query:

    codice:
    SELECT COUNT(idsquadra) AS presenze,
    GROUP_CONCAT(squadre_SerieA.nome_squadra SEPARATOR '|') AS squadre
    FROM campionati_SerieA
    JOIN squadre_SerieA ON campionati_SerieA.idsquadra=squadre_SerieA.id_squadra
    GROUP BY nome_squadra
    ORDER BY presenze DESC
    Il risultato però è che nella colonna "squadre" mi visualizza così:

    codice:
    presenze squadre
    88 Inter|Inter|Inter|Inter|Inter|Inter|Inter|Inter|In...
    87 Juventus|Juventus|Juventus|Juventus|Juventus|Juven...
    87 Roma|Roma|Roma|Roma|Roma|Roma|Roma|Roma|Roma|Roma|...
    86 Milan|Milan|Milan|Milan|Milan|Milan|Milan|Milan|Mi...
    82 Fiorentina|Fiorentina|Fiorentina|Fiorentina|Fioren...
    77 Lazio|Lazio|Lazio|Lazio|Lazio|Lazio|Lazio|Lazio|La...
    76 Torino|Torino|Torino|Torino|Torino|Torino|Torino|T...
    74 Napoli|Napoli|Napoli|Napoli|Napoli|Napoli|Napoli|N...
    73 Bologna|Bologna|Bologna|Bologna|Bologna|Bologna|Bo...
    63 Sampdoria|Sampdoria|Sampdoria|Sampdoria|Sampdoria|...
    59 Atalanta|Atalanta|Atalanta|Atalanta|Atalanta|Atala...
    53 Genoa|Genoa|Genoa|Genoa|Genoa|Genoa|Genoa|Genoa|Ge...
    47 Udinese|Udinese|Udinese|Udinese|Udinese|Udinese|Ud...
    Come posso fare? Grazie per l'aiuto!

    Ciao
    Tiziano

  2. #2
    prova con

    GROUP_CONCAT(DISTINCT squadre_SerieA.nome_squadra SEPARATOR '|') AS squadre

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    35
    Quote Originariamente inviata da optime Visualizza il messaggio
    prova con

    GROUP_CONCAT(DISTINCT squadre_SerieA.nome_squadra SEPARATOR '|') AS squadre
    Ciao Optime, inserendo DISTINCT mi da questo risulrato:

    codice:
                         
    presenze squadre
    88 Inter
    87 Juventus
    87 Roma
    86 Milan
    82 Fiorentina
    77 Lazio
    76 Torino
    74 Napoli
    73 Bologna
    63 Sampdoria
    59 Atalanta
    53 Genoa
    47 Udinese
    40 Cagliari
    30 Bari
    30 Vicenza
    29 Palermo
    29 Verona
    26 Parma
    26 Triestina
    23 Brescia
    19 SPAL
    18 Livorno
    17 Catania
    17 Chievo
    16 Ascoli
    16 Lecce
    16 Padova
    13 Alessandria
    13 Cesena
    ecc...

    Invece dovrebbe unire le squadre che hanno lo stesso numero di presenze, mmm tra le mie conoscenze di SQL so che GROUP_CONCAT dovrebbe fare quello...

  4. #4
    il fatto è che la prima colonna non è un campo, ma un aggregato. prova con una query nidificata, del tipo

    codice:
    SELECT presenze,
    GROUP_CONCAT(DISTINCT squadra SEPARATOR '|') AS squadre
    FROM (
    SELECT COUNT(idsquadra) AS presenze,
    squadre_SerieA.nome_squadra AS squadra
    FROM campionati_SerieA
    JOIN squadre_SerieA ON campionati_SerieA.idsquadra=squadre_SerieA.id_squadra
    GROUP BY nome_squadra
    )
    GROUP BY presenze
    ORDER BY presenze DESC

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    35
    Grazie Optime! Proprio quello che cercavo... Io non penso mai a nidificare le query effettivamente...

  6. #6

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 © 2020 vBulletin Solutions, Inc. All rights reserved.