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] UNION SELECT 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.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 |
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 1 2 Engineering 2 3 Finance 7 4 Engineering 3 5 Finance 4 6 Engineering 5 7 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 Billing 2 Allen Engineering 3 Teddy Engineering 4 Mark Finance 5 David Engineering 6 Kim Finance 7 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 ALL SELECT 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 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 |
——————-#####——————-
Loạt bài SQLite được biên dịch từ TutorialsPoint.
Nguồn: https://freetuts.net