English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operador UNION MySQL

Este tutorial apresenta a sintaxe e exemplos do operador UNION do MySQL.

O operador UNION do MySQL é usado para combinar os resultados de duas ou mais consultas SELECT em um único conjunto de resultados. Múltiplas consultas SELECT eliminarão dados duplicados.

Sintaxe

Formato da sintaxe do operador UNION do MySQL:

SELECT expressão1, expressão2, ... expressão_n
FROM tabelas
[WHERE condições]
UNION [ALL | DISTINCT]
SELECT expressão1, expressão2, ... expressão_n
FROM tabelas
[WHERE condições];

parâmetros

  • expressão1, expressão2, ... expressão_n: Colunas a serem pesquisadas.

  • tabelas: Tabela de dados a ser pesquisada.

  • WHERE condições: Opcional, condição de busca.

  • DISTINCT: Opcional, remove dados duplicados do conjunto de resultados. Por padrão, o operador UNION já remove dados duplicados, então o modificador DISTINCT não tem impacto nos resultados.

  • ALL: Opcional, retorna todos os conjuntos de resultados, incluindo dados duplicados.

banco de dados de demonstração

Neste tutorial, usaremos o w3banco de dados de exemplo do codebox.

A seguir estão os dados selecionados da tabela "Websites":

mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name  | url  | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google  | https://www.google.cm/    | 1     | USA  |
| 2  | 淘宝  | https://www.taobao.com/   | 13    | CN  |
| 3  | 基础教程网  | http://pt.oldtoolbag.com/    | 4689  | CN  |
| 4  | 微博  | http://weibo.com/         | 20  | CN  |
| 5  | Facebook  | https://www.facebook.com/ | 3     | USA  |
| 7  | stackoverflow | http://stackoverflow.com/ | 0 | IND  |
+----+---------------+---------------------------+-------+---------+

A seguir estão os dados do APP "apps":

mysql> SELECT * FROM apps;
+----+------------+-------------------------+---------+
| id | app_name  | url  | country |
+----+------------+-------------------------+---------+
|  1 | QQ APP  | http://im.qq.com/       | CN  |
|  2 | 微博 APP | http://weibo.com/       | CN  |
|  3 | 淘宝 APP | https://www.taobao.com/ | CN  |
+----+------------+-------------------------+---------+
3 linhas no conjunto (0,00 segundos)

Exemplo de UNION SQL

A seguinte consulta SQL seleciona todos os registros das tabelas "Websites" e "apps"Diferentescountry (apenas valores diferentes):

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;

Os resultados da execução do SQL acima são os seguintes:

Notas:O UNION não pode ser usado para listar todos os valores de country de duas tabelas. Se alguns sites e APPs vêm do mesmo país, cada país será listado apenas uma vez. O UNION só escolherá valores diferentes. Use UNION ALL para escolher valores repetidos!

Exemplo de UNION ALL SQL

A seguinte consulta SQL usa UNION ALL para selecionar de "Websites" e "apps" tabelasTodoscountry (também há valores repetidos):

SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
	ORDER BY country;

Os resultados da execução do SQL acima são os seguintes:

UNION ALL com WHERE

A seguinte consulta SQL usa UNION ALL para selecionar de "Websites" e "apps" tabelasTodosOs dados da China (CN) (também há valores repetidos):

Exemplos Online

SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
	SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY 
	country;

Os resultados da execução do SQL acima são os seguintes: