COMO JUNTAR DOIS OU MAIS SELECT

Como ajustar quantidade de colunas em um union no banco de dados?

Como ajustar quantidade de colunas em um union no banco de dados?

Usa-se campos NULL nos selects com menor número de colunas.

Um erro bem comum ao tentar usar o UNION em banco de dados SQL é fazer os selects chamando quantidade de colunas diferentes. Para ele funcionar a quantidade de colunas dos selects deve ser a mesma, para ficar simétrico.
Em uma consulta simples ficaria assim, por exemplo:

    SELECT campo1, campo2 FROM tabela
     union
    SELECT campo3, campo4 FROM tabela

Se a consulta fosse feita assim:

   SELECT campo1, campo2 FROM tabela
    union
   SELECT campo3 FROM tabela

Não iria funcionar. No mySql em português retornaria a mensagem de erro: 

#1222 - Os comandos SELECT usados têm diferente número de colunas

Se for necessário fazer a consulta com quantidades diferentes de campos, deve ser informada na consulta de menor quantidade de campos, um campo com valor nulo.
Ficando assim:


   SELECT campo1, campo2 FROM tabela
    union
   SELECT campo3, null FROM tabela



Para que serve union em sql?

Para que serve union em sql?

Une duas queries no banco de dados em sequência.

Diferente do join que faz as ligações necessárias e monta a query o union executa duas ou mais queries distintas e retorna o resultado em sequencia.

Por exemplo, se no banco de dados existe duas tabelas uma para compra e outra para venda e quer ver os registro de movimento dos itens de cada tabela usa o union para fazer essa consulta buscando em uma e depois na outra.

Também é usada para determinar o menor preço de venda onde existe uma tabela de produto, outra de preço, outra de promoções com algumas diárias e outras mensais. Pode se fazer a consulta ligando os itens com essas tabelas separando ou tipos e depois juntando tudo com union para a comparação.

Veja também: Quais as restrições no uso de union?.



botão de compartilhamento whatsapp botão de compartilhamento no twiter botão de compartilhamento do site botão de compartilhamento no linkedin botão de compartilhamento whatsapp