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

 

bannner-ctv-2

Được quan tâm nhiều nhất

  • iPhone 11 Pro Max Teardown - Tiny Motherboard & BIG Battery!

  • Apple Watch Series 5 Teardown - Always on Display Explained

  • Apple Watch Series 4 Teardown

Bạn thấy bài viết này thế nào?

Thích bài viết

thích

Chia sẻ ngay!

phuongle

Thành viên từ: 10/12/2019

Điểm uy tín: 298

SMod: 290 hướng dẫn đã chia sẻ

Team

Sửa máy nhanh Thành viên của Sửa máy nhanh

38 Thành viên

402 bài viết

Thêm bình luận

Bình luận bằng tài khoản Facebook

viet-bai-chia-se-kinh-nghiem-de-nhan-ngay-qua-hot

Viết bài chia sẻ kinh nghiệm để nhận ngay quà hot!!!

Tham gia ngay Đóng