English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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];
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.
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)
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!
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:
A seguinte consulta SQL usa UNION ALL para selecionar de "Websites" e "apps" tabelasTodosOs dados da China (CN) (também há valores repetidos):
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: