Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    [MYSQL] Sql distinct con tutti gli id

    Ciao, ho una tabella del genere:
    id; marca; modello
    1;ariston;pippo
    2;ariston;pluto
    3;samsung;paperino
    4;rex;minnie

    Se io faccio un:
    codice:
    Select DISTINCT(marca) FROM miatbl
    ottengo:
    ariston
    samsung
    rex

    ---
    Io vorrei avere però anche tutti gli id, in questo modo:
    ariston; 1 2
    samsung; 3
    rex; 4

    è possibile? se no dovrei fare 2 query e vorrei evitare.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da Sonikag Visualizza il messaggio
    Io vorrei avere però anche tutti gli id, in questo modo:
    ariston; 1 2
    samsung; 3
    rex; 4

    è possibile? se no dovrei fare 2 query e vorrei evitare.
    Si, è possibile ma è piu complicato di quello che sembra
    Per comporre la stringa "1 2" di Ariston ti serve un ciclo che
    - scorre i record della tabella di origine
    - e se sono di Ariston aggiunga il suo codice ......
    - eccetera

    Dubito che si possa fare anche utilizzando 2 o piu query

    Poi se sarò smentito allora mi studierò volentieri anch'io la soluzione

    .
    Ultima modifica di nman; 11-12-2020 a 09:00

  3. #3

  4. #4
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Group_Concat() è magnifico!
    Per tamponare fatto due query in php, ma visto che devo rifare una cosa simile lo userò!
    Grazie

  5. #5
    poi posta la soluzione, mi raccomando!

  6. #6
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Ho provato proprio con l'esempio che hai postato.

    codice:
    SELECT id,GROUP_CONCAT(marca)
    FROM lavastoviglie
    GROUP BY id;

  7. #7
    pensa, io avrei scritto al contrario

    codice:
    SELECT marca, GROUP_CONCAT(id)
    FROM lavastoviglie
    GROUP BY marca;

  8. #8
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Confermo! Errori di posizionamento copia e incolla geniali!!! E' ora di andare a pranzo!

    Secondo me può essere utili in tante situazione perchè si evitano di fare due query.

  9. #9

  10. #10
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da optime Visualizza il messaggio
    con mysql puoi usare GROUP_CONCAT()
    Wowwww !!!!
    Non conoscevo GROUP_CONCAT()

    Poi ho scoperto che in SQLServer esiste il corrispondente STRING_AGG()

    Non si finisce mai di imparare ......

Tag per questa discussione

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.