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

    query su più tabelle omogenee

    Il quesito è questo:

    Il mio database contiene tre tabelle, assolutamente omogenee:
    Stesso sipo di dati, stesso nome delle colonne, tutto perfettamente identico.

    posso eseguire una query su tutte e tre le tabelle contemporaneamente?

    es:
    Se questa è pippo:

    | Campo 1 | Campo 2 | Campo 3 |
    -----------------------------------
    | ugo 1 | leo 1 | flo 1 |
    | ugo 2 | leo 2 | flo 2 |
    | ugo 3 | leo 3 | flo 3 |


    Questa è pluto:

    | Campo 1 | Campo 2 | Campo 3 |
    -----------------------------------
    | ugo 4 | leo 4 | flo 4 |
    | ugo 5 | leo 5 | flo 5 |
    | ugo 6 | leo 6 | flo 6 |



    Questa è paperino:

    | Campo 1 | Campo 2 | Campo 3 |
    -----------------------------------
    | ugo 7 | leo 7 | flo 7 |
    | ugo 8 | leo 8 | flo 8 |
    | ugo 9 | leo 9 | flo 9 |


    Il risultato della query contemporanea sulle tre tabelle omogenee dovrebbe essere:


    | Campo 1 | Campo 2 | Campo 3 |
    -----------------------------------
    | ugo 1 | leo 1 | flo 1 |
    | ugo 2 | leo 2 | flo 2 |
    | ugo 3 | leo 3 | flo 3 |
    | ugo 4 | leo 4 | flo 4 |
    | ugo 5 | leo 5 | flo 5 |
    | ugo 6 | leo 6 | flo 6 |
    | ugo 7 | leo 7 | flo 7 |
    | ugo 8 | leo 8 | flo 8 |
    | ugo 9 | leo 9 | flo 9 |


    Si può fare?
    Grazie a tutti.
    Lupo
    ----

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    http://dev.mysql.com/doc/mysql/en/UNION.html
    "UNION is used to combine the result from many SELECT statements into one result set. UNION is available from MySQL 4.0.0 on."

    codice:
    SELECT * FROM pippo
    UNION
    SELECT * FROM pluto
    UNION
    SELECT * FROM paperino
    think simple think ringo

  3. #3
    Sei un grandissimo!!!!!!
    Mille grazie!
    Lupo
    ----

  4. #4
    dubbio: se aggiungo una condizione ( where... )

    SELECT * FROM pippo
    UNION
    SELECT * FROM pluto
    UNION
    SELECT * FROM paperino
    where campo1 like '%qualcosa%'

    la restrizione ha effetto su campo 1 di tutte e tre le tabelle?
    Lupo
    ----

  5. #5
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    no, solo sull'ultima query.
    think simple think ringo

  6. #6
    sei troppo gentile e ne approfitto.

    Una volta ottenuta la griglia dei risultati, come faccio a sapere a quale delle tre tabelle "coinvolte" appartiene una certa riga? Ovvero come faccio a sapere che la riga

    | ugo 3 | leo 3 | flo 3 |

    di trova nella tabella "pippo" ?

    Ovviamente di nuovo grazie!
    Lupo
    ----

  7. #7
    ok,

    ho risolto:

    SELECT 'pippo' as tabName, * FROM pippo
    UNION
    SELECT 'pluto' as tabName, * FROM pluto
    UNION
    SELECT 'paperino' as tabName, * FROM paperino

    il campo tabName della singola riga risultante dalla query conterrà il nome della tabella alla quale la riga appartiene, giusto?


    Di nuovo, ancora una volta, grazie. Mille grazie.

    Lupo
    ----

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.