UNION, especificando explicitamente UNION ALL ou UNION DISTINCT.
Se você não especificar ALL ou DISTINCT, isso dependerá da configuração union_default_mode. A diferença entre UNION ALL e UNION DISTINCT é que UNION DISTINCT aplicará uma operação de distinct ao resultado da união; isso é equivalente a um SELECT DISTINCT sobre uma subconsulta que contém UNION ALL.
Você pode usar UNION para combinar qualquer número de consultas SELECT, concatenando seus resultados. Exemplo:
Query
SELECT). Se os nomes das colunas não corresponderem, os nomes do resultado final serão obtidos da primeira consulta.
A conversão de tipos é realizada para unions. Por exemplo, se duas consultas combinadas tiverem o mesmo campo com tipos Nullable e não Nullable de um tipo compatível, o UNION resultante terá esse campo do tipo Nullable.
As consultas que fazem parte de UNION podem ser colocadas entre (). ORDER BY e LIMIT são aplicados a consultas separadas, não ao resultado final. Se você precisar aplicar uma conversão ao resultado final, poderá colocar todas as consultas com UNION em uma subconsulta na cláusula FROM.
Se você usar UNION sem especificar explicitamente UNION ALL ou UNION DISTINCT, poderá definir o modo de união usando a configuração union_default_mode. Os valores da configuração podem ser ALL, DISTINCT ou uma string vazia. No entanto, se você usar UNION com a configuração union_default_mode definida como string vazia, será gerada uma exceção. Os exemplos a seguir demonstram os resultados de consultas com diferentes valores dessa configuração.
Query
Response
Query
Response
UNION/UNION ALL/UNION DISTINCT podem ser executadas simultaneamente, e seus resultados podem ser combinados.
Veja também
- configuração insert_null_as_default.
- configuração union_default_mode.