SQLite - Klausul UNION

SQLite UNION klausa / operator digunakan untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT tanpa mengembalikan baris duplikat.

Untuk menggunakan UNION, setiap SELECT harus memiliki jumlah kolom yang sama yang dipilih, jumlah ekspresi kolom yang sama, tipe data yang sama, dan memiliki urutan yang sama, tetapi mereka tidak harus memiliki panjang yang sama.

Sintaksis

Berikut ini adalah sintaks dasar UNION.

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

UNION

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

Di sini kondisi yang diberikan dapat berupa ekspresi apa pun berdasarkan kebutuhan Anda.

Contoh

Pertimbangkan dua tabel berikut, (a) tabel PERUSAHAAN sebagai berikut -

sqlite> select * from COMPANY;
ID          NAME                  AGE         ADDRESS     SALARY
----------  --------------------  ----------  ----------  ----------
1           Paul                  32          California  20000.0
2           Allen                 25          Texas       15000.0
3           Teddy                 23          Norway      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) Tabel lainnya adalah DEPARTMENT sebagai berikut -

ID          DEPT                  EMP_ID
----------  --------------------  ----------
1           IT Billing            1
2           Engineering           2
3           Finance               7
4           Engineering           3
5           Finance               4
6           Engineering           5
7           Finance               6

Sekarang mari kita gabungkan dua tabel ini menggunakan pernyataan SELECT bersama dengan klausa UNION sebagai berikut -

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;

Ini akan menghasilkan hasil sebagai berikut.

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

Klausul UNION ALL

Operator UNION ALL digunakan untuk menggabungkan hasil dari dua pernyataan SELECT termasuk baris duplikat.

Aturan yang sama yang berlaku untuk UNION juga berlaku untuk operator UNION ALL.

Sintaksis

Berikut ini adalah sintaks dasar UNION ALL.

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

UNION ALL

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

Di sini kondisi yang diberikan dapat berupa ekspresi apa pun berdasarkan kebutuhan Anda.

Contoh

Sekarang, mari kita gabungkan dua tabel yang disebutkan di atas dalam pernyataan SELECT kita sebagai berikut -

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;

Ini akan menghasilkan hasil sebagai berikut.

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