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

Cláusula UNION no SQLite

SQLite UNIONcláusula/O operador é usado para combinar os resultados de duas ou mais consultas SELECT, sem retornar linhas repetidas.

Para usar UNION, cada SELECT deve ter o mesmo número de colunas selecionadas, o mesmo número de expressões de coluna, o mesmo tipo de dados e a mesma ordem, mas seus comprimentos não precisam ser iguais.

Sintaxe

Aqui está}}UNIONA sintaxe básica.

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

Aqui, a condição dada pode ser qualquer expressão específica conforme sua solicitação.

Exemplo

Considere as seguintes duas tabelas, (a) A tabela COMPANY é a seguinte:

sqlite> select * from COMPANY;
ID  NAME  AGE  ENDEREÇO SALÁRIO
----------  --------------------  ----------  ----------  ----------
1           Paul                  32          Califórnia  20000.0
2           Allen                 25          Texas       15000.0
3           Teddy                 23          Noruega      20000.0
4           Mark                  25          Rich-Mond   65000.0
5           David                 27          Texas       85000.0
6           Kim                   22          South-Hall  45000.0
7           James                 24          Houston     10000.0

(b) Outra tabela é a departmento (DEPARTMENT)--

ID  DEPT  EMP_ID
----------  --------------------  ----------
1           IT Billing            1
2           Engenharia           2
3           Finanças               7
4           Engenharia           3
5           Finanças               4
6           Engenharia           5
7           Finanças               6

Agora, vamos usar a cláusula UNION na consulta SELECT para conectar essas duas tabelas conforme mostrado a seguir:

sqlite>  SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT
         ON COMPANY.ID = DEPARTMENT.EMP_ID
         
         UNION
         
         SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT
         ON COMPANY.ID = DEPARTMENT.EMP_ID;

Isso produzirá os seguintes resultados.

EMP_ID  NAME  DEPT
----------  --------------------  ----------
1           Paul  IT Billing
2           Allen                                                         Engenharia
3           Teddy                                                         Engenharia
4           Mark                                                           Financeira
5           David                                                         Engenharia
6           Kim                                                             Financeira
7           James                                                             Financeira

Cláusula UNION ALL

O operador UNION ALL é usado para combinar os resultados de duas consultas SELECT, incluindo linhas repetidas.

As mesmas regras aplicáveis ao UNION também se aplicam ao operador UNION ALL.

Sintaxe

Aqui está a sintaxe básicaUNION ALL

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION ALL
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

Aqui, a condição dada pode ser qualquer expressão específica conforme sua solicitação.

Exemplo

Agora, vamos conectar os dois tabelas no comando SELECT como follows:

sqlite>  SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT
         ON COMPANY.ID = DEPARTMENT.EMP_ID
         
         UNION ALL
         SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT
         ON COMPANY.ID = DEPARTMENT.EMP_ID;

Isso produzirá os seguintes resultados.

EMP_ID  NAME  DEPT
----------  --------------------  ----------
1           Paul  IT Billing
2           Allen                                                         Engenharia
3           Teddy                                                         Engenharia
4           Mark                                                           Financeira
5           David                                                         Engenharia
6           Kim                                                             Financeira
7           James                                                             Financeira
1           Paul  IT Billing
2           Allen                                                         Engenharia
3           Teddy                                                         Engenharia
4           Mark                                                           Financeira
5           David                                                         Engenharia
6           Kim                                                             Financeira
7           James                                                             Financeira