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

    Query complicata

    Devo fare alcune operazioni sulle tabelle, ma per quanto mi sforzi, non riesco a creare la query adatta.

    Ho una tabella (Categoria) che ha i seguenti campi:

    CATID
    CATNAME

    Il valore catname è un valore numerico che fà riferimento ad una seconda tabella (Traduzioni) dove a quel valore sono associati diversi campi (Nome_ita, Nome_fra_Nome_eng).

    In pratica, ad esempio ho la tabella Categoria con questo campo:

    CAT ID - CATNAME
    1 - 25

    e la tabella Traduzioni con questo campo

    ID - NOME_ITA - NOME_FRA - NOME_ENG
    25 - Prova - Test - Try

    Voglio copiare questi valori in una terza tabella LS_CATEGORIES con i seguenti campi: IDCAT, CATNAME, CATLANG.

    In pratica il valore di esempio dovrebbe creare tre righe:

    IDCAT - CATNAME - CATLAN
    25 - Prova - it
    25 - Test - fr
    25 - Try - en

    Il tutto dovrebbe essere ripetuto per tutti i valori presenti nella tabella di origine (Categorie).


    Ho provato con INSERT INTO ls_categories SELECT ....
    ma non riesco a unire i valori delle traduzioni correttamente.

    Qualcuno riesce ad aiutarmi? Dopo due giorni di tentativi sono punto e a capo.
    Grazieeee

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    L'operazione piu' semplice, e' fare un cursore che per ogni ID della tabella Traduzione, inserisce in LS_Categorie, ipotizzando che i campi NOME_ITA, NOME_FRA, NOME_ENG siano tutti diversi da null (altrimenti puoi sempre fare un controllo, prima di inserire)

    Pero', se non puoi (o vuoi) fare un cursore, cerchiamo di tirar fuori una insert con select...

    ps. perche' hai descritto la tabella "categoria"? C'e' un motivo che non ho capito?

  3. #3
    @topservice

    Ciao,

    anche se da regolamento va specificato nel titolo il Database utilizzato è fondamentale e necessario almeno indicarlo nella richiesta: i dialetti SQL cambiano un pò da piattaforma a piattaforma prevedendo delle cose e ignorandone delle altre il che significa che non sapendo la piattaforma utilizzata è difficile riuscire a dare consigli precisi!

    Se gentilmente riporti il nome della piattaforma correggo il titolo.

    Grazie

  4. #4
    tre lingue, tre insert into...select

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Premetto che non la posso testare, ma, sempre che sia MySql, prova una istruzione di questo tipo, dove in poche parole, creo una tabella "virtuale" e a quella accedo.

    Codice PHP:
    INSERT INTO LS_CATEGORIES (IDCATCATNAMECATLAN
    SELECT u.* 
    FROM
    (
    Select a.id as idcat_trad
              a
    .nome_ita  as nomeita_trad 
              
    'it' as catlan_trad
       from traduzioni a
       where id
    =25
    UNION
    Select b
    .id as idcat_trad
              b
    .nome_fra  as nomefra_trad 
              
    'fra' as catlan_trad
       from traduzioni b
       where id
    =25
    UNION
    Select c
    .id as idcat_trad
              c
    .nome_eng  as nomefra_trad 
              
    'uk' as catlan_trad
       from traduzioni c
       where id
    =25  
     
    )  
    Se ho scritto qualche grossa stupidata fatemelo sapere.
    Io sono sempre favorevole alle soluzioni piu' semplici, come quelle dei cursori.

  6. #6
    Il db è MySQL 5.

    L'esempio era sull'id 25 ma in realtà io lo devo fare in tutte le righe della tabella, quindi l'ID deve ricavarlo automaticamente attraverso la lettura del campo CATNAME della tabella Categoria.

    Tutto ciò mi serve perchè deve interfacciare due applicazioni diverse che utilizzano campi diversi per gli stessi dati, senza dove rifare il programma php da capo.
    In pratica faccio un file PHP che una volta lanciato esegue tutte le query per adattare i campi da una tabella all'altra.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da topservice
    Il db è MySQL 5.

    L'esempio era sull'id 25 ma in realtà io lo devo fare in tutte le righe della tabella, quindi l'ID deve ricavarlo automaticamente attraverso la lettura del campo CATNAME della tabella Categoria.

    Tutto ciò mi serve perchè deve interfacciare due applicazioni diverse che utilizzano campi diversi per gli stessi dati, senza dove rifare il programma php da capo.
    In pratica faccio un file PHP che una volta lanciato esegue tutte le query per adattare i campi da una tabella all'altra.
    Prova il mio esempio, creando una VIEW, senza le condizioni sull'ID, rendendola quindi generica.

    Facci sapere.

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.