Finalidade do Union

25/01/2013

0

Olá galera,

podem me ajudar com uma questão,

Qual a finalidade do union ?
Gustavo Fernandes

Gustavo Fernandes

Responder

Posts

25/01/2013

Bruno Leandro

a finalidade é unir dois select com os mesmo campos mas que tenham condições diferentes, porque segundo os dba usar or deixar os selects lentos. existem outros casos tambem. por exemplo voce quer listar todos os clientes e suas compras, e caso um cliente nao tenha compra voce quer retornar um registro com valores especificos

Ex

select codigo,nome from tabela where data > 1900-01-01 and data < 2000-12-31
union
select codigo,nome from tabela where data = 2012-12-31


select codigo,nome,sum(valor_compra) from vendas
union
select codigo,nome,0 from clientes
where not exists( select codigo from vendas where vendas.codigo_cliente = clientes.codigo_cliente)
Responder

25/01/2013

Danilo Gomes

Então, cara, a ideia é essa apresentada na primeira resposta mesmo.

Não sei se você quis entender o "sentido" disso.

Muitas vezes temos que recuperar informações que, para determinada área do sistema, possuem o mesmo sentido lógico.
Contudo, no banco de dados, possuem origens diferentes.

Já tive, por exemplo, que pegar lançamentos bancários de origens distintas, tabelas distintas e estruturas distintas.
Mas para aquele relatório, não fazia diferença de onde era.

Muitas vezes, trabalhar com union, teoria dos conjuntos, é bem mais simples e intuitivo que trabalhar com uma série de joins complexos.
Responder

25/01/2013

Gustavo Fernandes

Bruno,

muito boa sua explicação só mais uma pergunta.

No select que demonstro os atributos que

tenho no primeiro select, também tenho que ter os mesmos no segundo ?
Responder

26/01/2013

Danilo Gomes

Não necessariamente os mesmos atributos, mas eles tem que ter tipos compatíveis.

Caso não tenham, pode fazer um cast em um dos selects, o importante é que ambos os retornos sejam compatíveis.
Responder

28/01/2013

Gustavo Fernandes

Hum...

entendi, obrigado pela atenção Midas.
Responder

28/01/2013

William

Gus estou encerrando o tópico, qualquer outra dúvida poste novamente.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar