SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite Union

Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng SQLite UNION toán tử để kết hợp các tập kết quả của hai hoặc nhiều truy vấn thành một tập kết quả duy nhất.

Giới thiệu về SQLite UNION toán tử

Đôi khi, bạn cần kết hợp dữ liệu từ nhiều bảng thành một tập kết quả hoàn chỉnh. Nó có thể dành cho các bảng có dữ liệu tương tự trong cùng một cơ sở dữ liệu hoặc có thể bạn cần kết hợp dữ liệu tương tự từ nhiều cơ sở dữ liệu.

Để kết hợp các hàng từ hai truy vấn trở lên thành một tập kết quả duy nhất, bạn sử dụng SQLite UNION nhà điều hành. Phần sau minh họa cú pháp cơ bản của UNION nhà điều hành:

query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;Code language: SQL (Structured Query Language) (sql)

Cả UNIONUNION ALL toán tử kết hợp các hàng từ tập kết quả thành một tập kết quả duy nhất. UNION toán tử loại bỏ loại bỏ các hàng trùng lặp, trong khi UNION ALL nhà điều hành không.

Bởi vì UNION ALL toán tử không xóa các hàng trùng lặp, nó chạy nhanh hơn UNION nhà điều hành.

Sau đây là các quy tắc để kết hợp dữ liệu:

  • Số lượng cột trong tất cả các truy vấn phải giống nhau.
  • Các cột tương ứng phải có kiểu dữ liệu tương thích.
  • Tên cột của truy vấn đầu tiên xác định tên cột của tập kết quả được kết hợp.
  • GROUP BYHAVING các mệnh đề được áp dụng cho từng truy vấn riêng lẻ, không phải tập kết quả cuối cùng.
  • ORDER BY mệnh đề được áp dụng cho tập kết quả tổng hợp, không phải trong tập kết quả riêng lẻ.

Lưu ý rằng sự khác biệt giữa UNIONJOIN ví dụ:INNER JOIN hoặc LEFT JOIN đó có phải là JOIN không mệnh đề kết hợp cột từ nhiều bảng có liên quan, trong khi UNION kết hợp hàng từ nhiều bảng tương tự.

Giả sử chúng ta có hai bảng t1 và t2 với cấu trúc như sau:

CREATE TABLE t1(
    v1 INT
);
 
INSERT INTO t1(v1)
VALUES(1),(2),(3);
 
CREATE TABLE t2(
    v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);Code language: SQL (Structured Query Language) (sql)

Câu lệnh sau kết hợp các tập kết quả của bảng t1 và t2 bằng cách sử dụng UNION nhà điều hành:

SELECT v1
  FROM t1
UNION
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Đây là kết quả:

Hình ảnh sau minh họa UNION hoạt động của bảng t1 và t2:

Câu lệnh sau kết hợp các tập kết quả của bảng t1 và t2 bằng cách sử dụng UNION ALL nhà điều hành:

SELECT v1
  FROM t1
UNION ALL
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Hình ảnh sau đây cho thấy kết quả đầu ra:

Hình ảnh sau minh họa UNION ALL hoạt động của bộ kết quả của bảng t1 và t2:

SQLite UNION ví dụ

Hãy lấy một số ví dụ về việc sử dụng UNION nhà điều hành.

1) SQLite UNION ví dụ

Câu lệnh này sử dụng UNION toán tử để kết hợp tên của nhân viên và khách hàng thành một danh sách duy nhất:

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;

Code language: SQL (Structured Query Language) (sql)

Đây là kết quả:

2) SQLite UNION với ORDER BY ví dụ

Ví dụ này sử dụng UNION toán tử để kết hợp tên của nhân viên và khách hàng thành một danh sách duy nhất. Ngoài ra, nó sử dụng ORDER BY mệnh đề sắp xếp danh sách tên theo họ và tên.

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;Code language: SQL (Structured Query Language) (sql)

Đây là kết quả:

Trong hướng dẫn này, bạn đã học cách sử dụng SQLite UNION toán tử để kết hợp các hàng từ tập kết quả thành một tập kết quả duy nhất. Bạn cũng đã biết được sự khác biệt giữa UNIONUNION ALL toán tử.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite JSON_ARRAY_LENGTH ()

  2. Thay đổi Dấu phân tách thành Dấu phẩy trong Kết quả truy vấn SQLite

  3. CHỌN DISTINCT Không hoạt động Android SQLite

  4. So sánh các ngày được lưu trữ dưới dạng chuỗi sử dụng Datetime

  5. Tạo câu lệnh INSERT từ kết quả truy vấn SQLite