Toán tử UNION trong SQLite được sử dụng để kết hợp các kết quả của hai hoặc nhiều câu lệnh SELECT mà không trả về bất kỳ hàng trùng lặp nào.
Để sử dụng UNION, mỗi SELECT phải có cùng số cột được chọn, cùng số biểu thức cột, cùng loại dữ liệu và cùng một thứ tự, nhưng chúng không cần thiết có cùng độ dài.
1. Cú pháp UNION trong SQLite
Sau đây là cú pháp cơ bản của toán tử UNION trong SQLite
|
1
2
3
4
5
6
7
8
9
|
SELECT column1 [, column2 ]FROM table1 [, table2 ][WHERE condition]UNIONSELECT column1 [, column2 ]FROM table1 [, table2 ][WHERE condition] |
Ở đây điều kiện đã cho có thể là bất kỳ biểu thức đã cho nào dựa trên yêu cầu của bạn.
2. Ví dụ UNION trong SQLite
Giả sử chúng ta có bảng COMPANY có các dòng dữ liệu sau:
|
1
2
3
4
5
6
7
8
9
10
|
sqlite> select * from COMPANY;ID NAME AGE ADDRESS SALARY---------- -------------------- ---------- ---------- ----------1 Paul 32 California 20000.02 Allen 25 Texas 15000.03 Teddy 23 Norway 20000.04 Mark 25 Rich-Mond 65000.05 David 27 Texas 85000.06 Kim 22 South-Hall 45000.07 James 24 Houston 10000.0 |
Giả sử chúng ta cũng có bảng DEPARTMENT có các dòng dữ liệu sau:
|
1
2
3
4
5
6
7
8
9
|
ID DEPT EMP_ID---------- -------------------- ----------1 IT Billing 12 Engineering 23 Finance 74 Engineering 35 Finance 46 Engineering 57 Finance 6 |
Bây giờ chúng ta hãy join hai bảng này bằng cách sử dụng câu lệnh SELECT cùng với toán tử UNION như sau:
|
1
2
3
4
5
6
7
|
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; |
Kết quả của câu lệnh trên như sau:
|
1
2
3
4
5
6
7
8
9
|
EMP_ID NAME DEPT---------- -------------------- ----------1 Paul IT Billing2 Allen Engineering3 Teddy Engineering4 Mark Finance5 David Engineering6 Kim Finance7 James Finance |
3. Toán tử UNION ALL trong SQLite
Toán tử UNION ALL được sử dụng để kết hợp các kết quả của hai câu lệnh SELECT bao gồm các hàng trùng lặp.
Các quy tắc tương tự áp dụng cho UNION cũng áp dụng cho UNION ALL.
Cú pháp của toán tử UNION ALL trong SQLite như sau:
|
1
2
3
4
5
6
7
8
9
|
SELECT column1 [, column2 ]FROM table1 [, table2 ][WHERE condition]UNION ALLSELECT column1 [, column2 ]FROM table1 [, table2 ][WHERE condition] |
Ở đây điều kiện đã cho có thể là bất kỳ biểu thức đã cho nào dựa trên yêu cầu của bạn.
4. Ví dụ UNION ALL trong SQLite
Bây giờ, chúng ta hãy join hai bảng COMPANY và DEPARTMENT đã đề cập ở trên trong câu lệnh SELECT như sau:
|
1
2
3
4
5
6
7
|
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; |
Và kết quả của câu lệnh trên:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
EMP_ID NAME DEPT---------- -------------------- ----------1 Paul IT Billing2 Allen Engineering3 Teddy Engineering4 Mark Finance5 David Engineering6 Kim Finance7 James Finance1 Paul IT Billing2 Allen Engineering3 Teddy Engineering4 Mark Finance5 David Engineering6 Kim Finance7 James Finance |
——————-#####——————-
Loạt bài SQLite được biên dịch từ TutorialsPoint.
Nguồn: https://freetuts.net



