Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [MYSQL] Query complessa, da record a campi

    Ciao a tutti... ho un dilemma e non so neanche se in qualche modo è risolvibile.
    Ipotizziamo di avere una tabella clienti con il solito:

    ID
    nome
    cognome
    sesso

    e di avere una tabella indirizzi fatta così:

    ID
    id_utente
    tipo_indirizzo
    nazione
    prov
    citta
    ind
    cap
    tel
    cell

    Ora immaginiamo che per ogni utente ci siano 2 indirizzi (lavoro e casa).
    E' possibile creare una vista dove visualizzo:

    nome
    cognome
    tel (tipo_indirizzo casa)
    tel (tipo_indirizzo lavoro)

    ????
    Praticamente riunire in un unico record i dati presi da due record differenti.
    Altrimenti dovrei visualizzare i 2 record completi (nome, cognome, tel, tipo_indirizzo) e poi da php leggere e discriminare il tipo per riempire la maschera (nome, cognome, tel , tel)
    Sono stato abbastanza chiaro?
    E' possibile farlo?
    Grazie
    Rino
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select u.*,
    max(case when i.tipo_indirizzo = 'casa' then tel else null end) as casa,
    max(case when i.tipo_indirizzo = 'lavoro' then tel else null end) as lavoro
    from utenti as u
    inner join indirizzi as i
    on u.id = i.id_utente
    group by u.id

  3. #3
    min*ia non ci arrivavo manco morto da solo... cmq la provo e ti faccio sapere!
    GRAZIE
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  4. #4
    Mitico... ho provato la query e funziona!!!!
    Da questa query posso tirare fuori una vista... e fin qui dovrei riuscire, ma poi ad esempio... è possibile modificare i dati in questa vista e quindi propagarli ai record?
    Sarebbe mooooolto più comodo che fare 2 o 3 query sui record, non trovate?
    Si può fare?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  5. #5
    Aggiungo ancora una domanda...
    Diciamo che la tipologia (tipo_indirizzo) sia più vasta e non solo "lavoro","casa" ma molti più tipi e magari contenuti in una tabella tipologia.
    E' possibile trasformare la QUERY in modo che
    codice:
    max(case when i.tipo_indirizzo = 'casa' then tel else null end) as casa,
    max(case when i.tipo_indirizzo = 'lavoro' then tel else null end) as lavoro
    diventi un qualcosa che automaticamente crei il codice. Tipo un FOREACH di tutti i valori della tabella tipologia.
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

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.