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

    Mysql: GROUP_CONCAT senza raggruppare i dati della seconda tabella. possibile?

    ciao a tutti, ho letto nella guida qui sul sito la funzione del GROUP_CONCAT assieme al LEFT JOIN.

    In questo modo ottengo questo:
    + utente 1
    - dato 1
    - dato 2
    - dato 3

    + utente 2
    - dato 1
    - dato 6
    - dato 7

    tutto in una pagina.

    Volevo chiedere, è possibile non fare in modo che i riusultati (dato 1, dato 2, dato 3, ecc.) non vengano raggruppati? cioè x esempio:

    ipotizziamo che a ogni dato ho associato un testo, che potrebbe essere uguale x alcuni dati.

    dato 1: valore 1
    dato 2: valore 1
    dato 3: valore 3
    dato 4: valore 5


    se i risultait li devo mettere in una tabella, con questo modo mi ritrovo un risultato cosi:

    + utente 1
    - dato 1 | valore 1
    - dato 2 | valore 3
    - dato 3 | valore 5
    - dato 4 |


    l'ultimo dato vuoto, xchè "valore 1" non è stato ripetuto... come posso fare x risolvere questo problema?

  2. #2
    Volevo chiedere, è possibile non fare in modo che i riusultati (dato 1, dato 2, dato 3, ecc.) non vengano raggruppati? cioè x esempio:
    .....
    qui c'e' una doppia negazione che impedisce di capire quello che vuoi ottenere.

    group_concat puo' "raggruppare" o meno i dati con l'uso del distinct.

    vedi la sintassi su manuale:

    http://dev.mysql.com/doc/refman/5.0/...functions.html

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    niente.. forse la funzione group concat non centra nulla.. quale altra funzione devo usare?

  4. #4
    Originariamente inviato da webboy82
    niente.. forse la funzione group concat non centra nulla.. quale altra funzione devo usare?
    ma non e' per niente chiaro .... non si sa quante tabelle ci sono, come sono strutturate, la relazione, la query che utilizzi ..... il risultato che vuoi ottenere e' l'unico che si capisce... ma mancano tutti gli altri presupposti.

    Se ad ogni dato corrisponde un valore non vedo il problema. Basta selezionare dato-valore....

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    allora ho 2 tabelle: utenti e immagini

    VOGLIO CHE IN UN UNICA PAGINA SIA VISUALIZZATO QUESTO:

    utente 1
    - immagine 1
    - immagine 2
    - immagine 3

    utente 2
    - immagine 4
    - immagine 5
    - immagine 6

    ammettimao che oltre al campo immagine nella seconda tabella ci sia un testo, una descrizione er la foto che potrebbe essere anche uguale per le altre immagini

    quindi voglio che sia visto questo

    utente 1
    - immagine 1 (descrizione xxx)
    - immagine 2 (descrizione yyy)
    - immagine 3 (descrizione xxx)


    l'immagine 1 e l'immagine 3 hanno la stessa descrizione... CON IL GROUP CONCAT invece mi raggruppa i valori doppi, quindi mi salta un dato!

    la domanda è questa, che funzione devo usare per fare visualizzare i dati in questo modo?

  6. #6
    Originariamente inviato da webboy82
    la domanda è questa, che funzione devo usare per fare visualizzare i dati in questo modo?
    Si, ma qual'e' la relazione tra le due tabelle????

    Se la tabella e' ben strutturata dovresti avere una relazione tra utente - immagine - descrizione

    Voglio dire ... quanto meno nella tabella utente ci deve essere un campo che indica l'id dell'immagine e nell'immagine l'indicazione della descrizione. Oppure nella tabella utente la descrizione stessa.... insomma senza sapere come sono fatte le tabelle ...

    in linea di massima:

    codice:
    select * 
    from utenti
    inner join immagini using(id_immagine)

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    la relazione è questa:

    TABELLA UTENTE:
    - id
    - utente

    TABELLA IMMAGINI
    - id_immagine
    - id_utente
    - immagine
    - descrizione_immagine

  8. #8
    codice:
    select *
    from utente as u 
    inner join immagini as i ON u.id = i.id_utente

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