Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    [Mysql] UNION ALL fra 2 tabelle

    Ciao ragazzi, ho la necessità di unire 2 tabelle con lo stesso numero di campi e i stessi nomi. Per unire le 2 tabelle ho utilizzato "UNION ALL", fin qui nessun problema. Quando però devo stampare i valori ho bisogno di stampare l'id della prima tabella e l'id della seconda tabella separatamente. Come posso fare?

    Grazie

    M4tt86

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non mi è chiaro cosa intendi per id della tabella. Se intendi semplicemente poter identificare se un record appartiene a una oppure all'altra:

    codice:
    select campo1,...campoN, 'tabella1' as tabella from tabella1
    union all
    select campo1,...campoN, 'tabella2' from tabella2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    In pratica le mie tabelle sono formate così:

    codice:
    Tabella1:
    ID, CAMPO1, CAMPO2, CAMPO3
    1 ,  a          , b          , c
    2 ,  d          , e          , f
    ...
     
    Tabella2:
    ID, CAMPO1, CAMPO2, CAMPO3
    1 , aa         ,  bb       ,  cc
    2 , dd         ,  ee       ,  ff
    ...
    Quello che a me interessa fare è questo:

    codice:
    while ($row_leggi = mysql_fetch_assoc($leggi_result)) {
    
    echo $row_leggi['Tabella1.ID'];
    echo $row_leggi['Tabella2.ID'];
    
    }
    Ovviamente la sintassi $row_leggi['Tabella1.ID'] e $row_leggi['Tabella2.ID'] è sbagliata, ma come posso fare a ottenere questo risultato?


    L'UNION fra le 2 Tabelle mi restituisce questo:

    codice:
    Tabella1:
    ID, CAMPO1, CAMPO2, CAMPO3
    1 ,  a          , b          , c
    2 ,  d          , e          , f
    1 , aa         ,  bb       ,  cc
    2 , dd         ,  ee       ,  ff
    ...
    Quindi come faccio a poter distinguere l'id appartenente alla tabella originale?

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Un esempio te l'ho già fatto. Un'altra alternativa potrebbe essere usare un campo con valore 1 e 2.

    codice:
    select campo1,...,campoN, 1 as ordine from tabella1
    union all
    select campo1,...,campoN, 2 from tabella2
    in questo modo in base a tale valore sapresti a quale tabella appartiene il record. Puoi anche ordinare i record su 1 e 2 come preferisci così hai prima tutti i record di una tabella e poi quelli dell'altra.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ok grazie! funziona tutto! Sei un genio!!! :-)

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.