Phép Hợp UNION Trong SQL - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Cú pháp Union
- 2 Mệnh đề Union All trong SQL
Mệnh đề Union trong SQL được sử dụng để kết hợp 2 hay nhiều tập kết quả từ các câu lệnh SELECT lại với nhau mà không có bất kỳ một dòng dữ liệu trùng lặp nào.
Khi sử dụng Union, mỗi mệnh đề Select cần tuân thủ một số quy tắc sau:
- Có số lượng cột được chọn giống nhau.
- Từng đôi một các cột có kiểu dữ liệu giống nhau.
- Các cột tương ứng giữa 2 mệnh đề phải được đặt đúng thứ tự chọn.
Cú pháp Union
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 nào đã cho dựa trên yêu cầu của bạn.
Ví dụ có bảng CUSTOMERS
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+Và bảng ORDERS
+-----+---------------------+-------------+--------+ |OID | DATE | CUSTOMER_ID | AMOUNT | +-----+---------------------+-------------+--------+ | 102 | 2009-10-08 00:00:00 | 3 | 3000 | | 100 | 2009-10-08 00:00:00 | 3 | 1500 | | 101 | 2009-11-20 00:00:00 | 2 | 1560 | | 103 | 2008-05-20 00:00:00 | 4 | 2060 | +-----+---------------------+-------------+--------+Bây giờ, chúng ta hãy nối hai bảng này trong câu lệnh SELECT với Union như sau:
QL> SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS LEFT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID UNION SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS RIGHT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID; +------+----------+--------+---------------------+ | ID | NAME | AMOUNT | DATE | +------+----------+--------+---------------------+ | 1 | Ramesh | NULL | NULL | | 2 | Khilan | 1560 | 2009-11-20 00:00:00 | | 3 | kaushik | 3000 | 2009-10-08 00:00:00 | | 3 | kaushik | 1500 | 2009-10-08 00:00:00 | | 4 | Chaitali | 2060 | 2008-05-20 00:00:00 | | 5 | Hardik | NULL | NULL | | 6 | Komal | NULL | NULL | | 7 | Muffy | NULL | NULL | +------+----------+--------+---------------------+Mệnh đề Union All trong SQL
Mệnh đề Union trong SQL được sử dụng để kết hợp 2 hay nhiều tập kết quả từ các câu lệnh SELECT lại với nhau bao gồm cả những dòng dữ liệu bị trùng lắp.
Cú pháp sử dụng Union All
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION ALL SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]Ví dụ chúng ta có 2 bảng CUSTOMERS
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+Và bảng ORDERS
+-----+---------------------+-------------+--------+ |OID | DATE | CUSTOMER_ID | AMOUNT | +-----+---------------------+-------------+--------+ | 102 | 2009-10-08 00:00:00 | 3 | 3000 | | 100 | 2009-10-08 00:00:00 | 3 | 1500 | | 101 | 2009-11-20 00:00:00 | 2 | 1560 | | 103 | 2008-05-20 00:00:00 | 4 | 2060 | +-----+---------------------+-------------+--------+Bây giờ, chúng ta hãy nối hai bảng này trong câu lệnh SELECT với Union All như sau:
SQL> SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS LEFT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID UNION ALL SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS RIGHT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;Output
+------+----------+--------+---------------------+ | ID | NAME | AMOUNT | DATE | +------+----------+--------+---------------------+ | 1 | Ramesh | NULL | NULL | | 2 | Khilan | 1560 | 2009-11-20 00:00:00 | | 3 | kaushik | 3000 | 2009-10-08 00:00:00 | | 3 | kaushik | 1500 | 2009-10-08 00:00:00 | | 4 | Chaitali | 2060 | 2008-05-20 00:00:00 | | 5 | Hardik | NULL | NULL | | 6 | Komal | NULL | NULL | | 7 | Muffy | NULL | NULL | | 3 | kaushik | 3000 | 2009-10-08 00:00:00 | | 3 | kaushik | 1500 | 2009-10-08 00:00:00 | | 2 | Khilan | 1560 | 2009-11-20 00:00:00 | | 4 | Chaitali | 2060 | 2008-05-20 00:00:00 | +------+----------+--------+---------------------+Nguồn tham khảo
https://www.tutorialspoint.com/sql/sql-unions-clause.htm
Từ khóa » Cú Pháp Union Trong Sql
-
Toán Tử UNION Trong SQL Server
-
Mệnh đề UNION Trong SQL - Học Sql Cơ Bản đến Nâng Cao - VietTuts
-
Toán Tử UNION Trong SQL
-
Cú Pháp Mệnh đề Union Trong SQL. Cùng Tìm Hiểu Nhé. - GreenSQL
-
Kết Hợp Dữ Liệu Với UNION Trong SQL
-
Mệnh đề UNION Trong SQL | 79 Bài Học SQL Hay Nhất
-
Cú Pháp Mệnh đề Union Trong SQL Là Gì? Union Có Quan Trọng Không?
-
Toán Tử UNION Trong SQL | Lập Trình Từ Đầu
-
Toán Tử UNION Trong SQL
-
Tìm Hiểu Toán Tử UNION Trong SQL - Phần Mềm ATP Software
-
Gộp Dữ Liệu Với UNION Và UNION ALL Trong SQL
-
Toán Tử UNION Trong Oracle
-
Mệnh đề Kết Hợp Dữ Liệu UNION Trong SQL
-
Toán Tử UNION Trong SQL Server