Discussione:
Query di unione elimina i duplicati, come evitarlo?
(troppo vecchio per rispondere)
Emilio
2008-07-03 11:44:14 UTC
Permalink
Buongiorno, ho 4 tabelle strutturalmente identiche e senza chiave
primaria definita, alcune di esse hanno dei record identici.

Con una query di unione del tipo:

SELECT * FROM (select * from tabA
union select * from tabB
union select * from tabC
union select * from tabD);

vorrei selezionare il contenuto di tutte e 4 contemporaneamente però
ho notato che i record duplicati vengono eliminati e, quindi, se ho 4
righe identiche ne viene selezionata una sola.

Come posso evitare questo comportamento?

Grazie, Emilio.
Paolo
2008-07-03 12:11:00 UTC
Permalink
Ciao Emilio,
per avere anche i record doppi devi usare union all invece di union quindi
la tua query sql deve diventare

SELECT * FROM (select * from tabA
union all select * from tabB
union all select * from tabC
union all select * from tabD);

HTH Paolo
Post by Emilio
Buongiorno, ho 4 tabelle strutturalmente identiche e senza chiave
primaria definita, alcune di esse hanno dei record identici.
SELECT * FROM (select * from tabA
union select * from tabB
union select * from tabC
union select * from tabD);
vorrei selezionare il contenuto di tutte e 4 contemporaneamente però
ho notato che i record duplicati vengono eliminati e, quindi, se ho 4
righe identiche ne viene selezionata una sola.
Come posso evitare questo comportamento?
Grazie, Emilio.
giorgio rancati
2008-07-03 12:12:40 UTC
Permalink
Post by Emilio
Buongiorno, ho 4 tabelle strutturalmente identiche e senza chiave
primaria definita, alcune di esse hanno dei record identici.
SELECT * FROM (select * from tabA
union select * from tabB
union select * from tabC
union select * from tabD);
vorrei selezionare il contenuto di tutte e 4 contemporaneamente però
ho notato che i record duplicati vengono eliminati e, quindi, se ho 4
righe identiche ne viene selezionata una sola.
sì, questo è il comportamento della Union.
Post by Emilio
Come posso evitare questo comportamento?
usando la Union All
----
select * from tabA
union All select * from tabB
union All select * from tabC
union All select * from tabD
----

Ciao
--
Giorgio Rancati
[Office Access MVP]
Emilio
2008-07-03 12:29:29 UTC
Permalink
On 3 Lug, 14:12, "giorgio rancati"
Post by giorgio rancati
Post by Emilio
Buongiorno, ho 4 tabelle strutturalmente identiche e senza chiave
primaria definita, alcune di esse hanno dei record identici.
SELECT * FROM (select * from tabA
union select * from tabB
union select * from tabC
union select * from tabD);
vorrei selezionare il contenuto di tutte e 4 contemporaneamente però
ho notato che i record duplicati vengono eliminati e, quindi, se ho 4
righe identiche ne viene selezionata una sola.
sì, questo è il comportamento della Union.
Post by Emilio
Come posso evitare questo comportamento?
usando la Union All
----
select * from tabA
union All select * from tabB
union All select * from tabC
union All select * from tabD
----
Ciao
--
Giorgio Rancati
[Office Access MVP]
Ringrazio Paolo e Giorgio Rancati per avermi aiutato. Ora funziona.

POST CHIUSO.

Loading...