Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459

    [MYSQL] problema con query

    Ho 2 tabelle

    tabella 1: product_id, product_code
    tabella 2: product_id, product_description, language_id

    devo tirare fuori i record su 3 colonne in modo da avere
    product_code, product_description (inglese), product_description (italiano)

    product_id è la chiave univoca che collega le due tabelle
    product_description contiene la descrizione del prodotto in lingua (inglese, italiano)
    language_id mi indica la lingua in cui è scritta la product_description

    Al momento riesco solo a generare un elenco su due colonne del tipo

    Codice001 , penna rossa
    Codice001 , red pencil

    Io invece ho bisogno che venga così:

    Codice001 , penna rossa, red pencil

    Suggerimenti ?
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  2. #2

  3. #3
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    L'idea è buona ma a me serve il risultato su 3 colonne. con GROUP_CONCAT ottengo solo due colonne (la prima col product_code e la seconda che contiene la descrizione nelle 2 lingue). Io invece ho bisogno di:

    Campo1 Campo2 Campo3
    product_code descr. inglese descr. italiano
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Chiedo scusa. Avevo letto di fretta e mi era sfuggita la questione delle 3 colonne.


    Ok, ti scrivo un esempio. Adattalo alle tue esigenze. Supponendo che la tua tabella2 sia così

    codice:
    product_id product_description language_id
    1   penna rossa          1
    1   red pencil             2
    2   tavolo nero           1
    2   black table            2
    codice:
    select product_id,
    max(case when language_id = 1 then product_description else null end) as ita,
    max(case when language_id = 2 then product_description else null end) as ing
    from tabella2
    group by product_id

  5. #5
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    Ora effettivamente o il risultato su 3 colonne, ma i campi ing e ita riportano la stessa descrizione per ogni record estratto....
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da ade_v
    Ora effettivamente o il risultato su 3 colonne, ma i campi ing e ita riportano la stessa descrizione per ogni record estratto....
    Mi sembra strano.
    Hai adattato la tua query ai valori contenuti nella tua tabella?
    Eventualmente posta qualche record di esempio, così vediamo se c'è da adattare qualcos'altro.

  7. #7
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    Ho risolto: dovevo solo aggiungere una clausola di where.
    Grazie per l'aiuto
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

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.