English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como combinar os resultados de duas ou mais consultas SQL.
O operador UNION é usado para combinar os resultados de duas ou mais consultas SELECT em um único conjunto de resultados. A operação UNION é diferente da junção que combina colunas de duas tabelas. O operador UNION coloca todas as linhas das duas tabelas de origem em uma tabela de resultados, criando assim uma nova tabela.
A seguir estão as regras básicas para usar UNION para combinar os resultados de duas consultas SELECT:
Em todas as consultas, o número e a ordem das colunas devem ser iguais.
O tipo de dados da coluna correspondente deve ser compatível.
Quando essas condições forem atendidas, essas tabelas são compatíveis em conjunto (união-compatível):
Sintaxe básica do UNION:
SELECT column_list FROM table1_nome UNION SELECT column_list FROM table2_nome;
Para melhor entender a operação de união, suponhamos que existam alguns campos hipotéticos nas tabelas employees e customers, como first_name e last_name. Observe que esses campos realmente não existem nas tabelas de demonstração do nosso banco de dados.
+----+------------+-----------+--------+ | id | primeiro_nome | último_nome | salário | +----+------------+-----------+--------+ | 1 | Ethan | Hunt | 5000 | | 2 | Tony | Montana | 6500 | | 3 | Sarah | Connor | 8000 | | 4 | Rick | Deckard | 7200 | | 5 | Martin | Blank | 5600 | +----+------------+-----------+--------+ | +----+------------+-----------+----------+ | id | primeiro_nome | último_nome | cidade | +----+------------+-----------+----------+ | 1 | Maria | Anders | Berlin | | 2 | Fran | Wilson | Madrid | | 3 | Dominique | Perrier | Paris | | 4 | Martin | Blank | Turim | | 5 | Thomas | Hardy | Portland | +----+------------+-----------+----------+ | |
Tabela: funcionários | Tabela: clientes |
Vamos executar a operação de união para combinar os resultados de duas consultas.
A seguinte declaração retorna os nomes e sobrenomes de todos os clientes e funcionários:
SELECT first_name, last_name FROM employees UNION SELECT first_name, last_name FROM customers;
Executar a seguinte declaração, o conjunto de resultados será conforme mostrado a seguir:
+---------------+--------------+ | primeiro_nome | último_nome | +---------------+--------------+ | Ethan | Hunt | | Tony | Montana | | Sarah | Connor | | Rick | Deckard | | Martin | Blank | | Maria | Anders | | Fran | Wilson | | Dominique | Perrier | | Thomas | Hardy | +---------------+--------------+
Por padrão, o operador UNION remove linhas repetidas do conjunto de resultados combinado. É por isso que a consulta acima retorna9linhas, se você notar que o nome 'Martin Blank' aparece tanto na tabela employees quanto na tabela customers.
No entanto, se você quiser manter linhas repetidas, você pode usar a palavra-chave ALL, conforme mostrado a seguir:
SELECT first_name, last_name FROM employees UNION ALL SELECT first_name, last_name FROM customers;