Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [MySql] JOIN

  1. #1

    [MySql] JOIN

    Ciao a tutti.
    Ho un piccolo problemino... sto facendo una join (mai trattati fin'ora)... allora la situazione è questa: c'è una lista di persone e cose, ogni cosa può appartenere ad una persona sola, ma ogni persona può avere più cose o nessuna.

    Quindi ho fatto una tabella persone

    PERSONE
    ID
    nome
    cognome
    sesso
    eta

    e una tabella cose

    COSE
    ID
    nome_cosa
    descr_cosa


    A questo punto a me serve tutto l'elenco delle persone e le relative cose che possiedono.
    Dato che ogni persona può possedere tutto o niente ho pensato alla LEFT JOIN quindi ho fatto


    codice:
    SELECT * FROM persone AS p LEFT JOIN cose AS c ON p.ID = c.ID
    Ed effettivamente la cosa funziona... si... finchè mi trovo in ambito di progettazione del db.
    Eh si perchè tutto ciò deve essere fatto attraverso php e se una persona possiede più cose il record ad essa associata si ripete per tante volte quante cose possede Es.:

    codice:
    1 GIOVANNI     ROSSI    UOMO   34  1  LAMPADA     SERVE A FAR LUCE
    1 GIOVANNI     ROSSI    UOMO   34  1  COMPUTER    SERVE A LAVORARE
    1 GIOVANNI     ROSSI    UOMO   34  1  TELEFONO    SERVE A TELEFONARE
    2 MARIA        NERI     DONNA  43  2  BOTTIGLIA   SERVE A METTERCI DENTRO DEI LIQUIDI
    2 MARIA        NERI     DONNA  43  2  TV          SERVE A GUARDARE PROGRAMMI TELEVISIVI
    3 MARCO        BIANCHI  UOMO   53  3  BICCHIERE   SERVE A BERE
    La mia domanda è: come faccio a gestire tutto questo in php?
    Come faccio a ripetere solo una volta nome cognome etc, e a mostrare comunque le cose appartenenti alle varie persone?

    Vi ringrazio in anticipo e confido in una risposta... perchè è anche molto urgente

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select p.nome,p.cognome,group_concat(c.nome_cosa) as elenco
    from persone as p
    inner join cose as c
    on p.id = c.id
    group by p.id

  3. #3
    Wow, dritto al punto.
    Ti devo da bere ;-)

    Grazie mille

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