Cláusula Union
Chamamos a atenção de um cliente que precisa de consultas SQL. Antes de explorarmos os JOINs, vamos aprender sobre a cláusula UNION, que é fundamental para combinar várias tabelas.
Aqui estão alguns pontos importantes sobre o uso do UNION:
-
Quantidade e ordem das colunas: todas as consultas combinadas com
UNIONdevem ter o mesmo número de colunas na mesma ordem; -
Tipos de dados: as colunas em cada consulta devem ter tipos de dados compatíveis;
-
Linhas únicas: por padrão, o
UNIONremove linhas duplicadas. UseUNION ALLse desejar manter os duplicados.
Para uma melhor compreensão de como combinar tabelas corretamente usando a cláusula UNION, foi introduzida uma tabela adicional que contém informações sobre contractors.
Não há muitas informações aqui, apenas first_name, last_name e email.
Você pode observar que esta tabela possui semelhanças com a tabela employees. Utilizando a cláusula UNION, é possível combinar essas duas tabelas para, por exemplo, visualizar uma lista com todos os nomes e sobrenomes de funcionários e contratados envolvidos na empresa.
Para isso, utilizaremos a cláusula UNION:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Análise do que está acontecendo:
Existem duas consultas que retornam três colunas cada, com os mesmos tipos de dados. O objetivo é visualizar o Id, first_name e last_name de todos na empresa. Também renomeamos a coluna Id para que ambas as consultas apresentem os mesmos nomes de coluna.
Em seguida, utiliza-se o UNION para combinar os resultados dessas consultas, removendo duplicatas (embora não haja nenhuma neste caso).
Por fim, os resultados são ordenados pelo Id utilizando ORDER BY.
Note
Estamos ordenando pelo
Id, que é uma coluna comum em ambas as tabelas.
Após utilizar o UNION, obtém-se uma "única consulta grande" que pode ser manipulada posteriormente com cláusulas como ORDER BY.
Não é possível utilizar diretamente WHERE ou GROUP BY com tabelas combinadas usando UNION. Para aplicar essas cláusulas, é necessário utilizar uma subconsulta na seção FROM. Veja um exemplo de como fazer isso:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Utilizar uma subconsulta na seção FROM proporciona maior flexibilidade. Pode parecer complicado no início, mas dominar esse recurso facilita a criação de consultas complexas.
1. Quais colunas são necessárias ao usar a cláusula UNION no SQL?
2. Como a cláusula UNION trata as linhas duplicadas por padrão?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain the difference between UNION and UNION ALL?
How do I know when to use a subquery with UNION?
Can you show more examples of using UNION with different tables?
Incrível!
Completion taxa melhorada para 4
Cláusula Union
Deslize para mostrar o menu
Chamamos a atenção de um cliente que precisa de consultas SQL. Antes de explorarmos os JOINs, vamos aprender sobre a cláusula UNION, que é fundamental para combinar várias tabelas.
Aqui estão alguns pontos importantes sobre o uso do UNION:
-
Quantidade e ordem das colunas: todas as consultas combinadas com
UNIONdevem ter o mesmo número de colunas na mesma ordem; -
Tipos de dados: as colunas em cada consulta devem ter tipos de dados compatíveis;
-
Linhas únicas: por padrão, o
UNIONremove linhas duplicadas. UseUNION ALLse desejar manter os duplicados.
Para uma melhor compreensão de como combinar tabelas corretamente usando a cláusula UNION, foi introduzida uma tabela adicional que contém informações sobre contractors.
Não há muitas informações aqui, apenas first_name, last_name e email.
Você pode observar que esta tabela possui semelhanças com a tabela employees. Utilizando a cláusula UNION, é possível combinar essas duas tabelas para, por exemplo, visualizar uma lista com todos os nomes e sobrenomes de funcionários e contratados envolvidos na empresa.
Para isso, utilizaremos a cláusula UNION:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Análise do que está acontecendo:
Existem duas consultas que retornam três colunas cada, com os mesmos tipos de dados. O objetivo é visualizar o Id, first_name e last_name de todos na empresa. Também renomeamos a coluna Id para que ambas as consultas apresentem os mesmos nomes de coluna.
Em seguida, utiliza-se o UNION para combinar os resultados dessas consultas, removendo duplicatas (embora não haja nenhuma neste caso).
Por fim, os resultados são ordenados pelo Id utilizando ORDER BY.
Note
Estamos ordenando pelo
Id, que é uma coluna comum em ambas as tabelas.
Após utilizar o UNION, obtém-se uma "única consulta grande" que pode ser manipulada posteriormente com cláusulas como ORDER BY.
Não é possível utilizar diretamente WHERE ou GROUP BY com tabelas combinadas usando UNION. Para aplicar essas cláusulas, é necessário utilizar uma subconsulta na seção FROM. Veja um exemplo de como fazer isso:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Utilizar uma subconsulta na seção FROM proporciona maior flexibilidade. Pode parecer complicado no início, mas dominar esse recurso facilita a criação de consultas complexas.
1. Quais colunas são necessárias ao usar a cláusula UNION no SQL?
2. Como a cláusula UNION trata as linhas duplicadas por padrão?
Obrigado pelo seu feedback!