Bỏ qua đến nội dung
Bỏ qua điều hướng
Đăng nhập
MT.NET.VN

Viewbh Menh De Union Trong Sql2023 04 12 11 14 12

Tìm kiếm
Thuộc khóa học · baihoc_sub = 50

MS SQL ( Basic to Pro )

Bài 1 / 1 trong khóa học.

Xem khóa học
100%
Bài trướcĐây là bài đầu tiên Bài sauĐây là bài cuối cùng
MT LEARNING · LESSON

Mệnh đề UNION trong SQL

Mệnh đề UNION trong SQL

Mệnh đề UNION trong SQL

Mệnh đề UNION trong SQL



Mệnh đề UNION trong SQL đượ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 cần trả về bất kỳ hàng trùng lặp nào.

Để sử dụng mệnh đề UNION này, mỗi câu lệnh SELECT cần phải có

  • Cùng một số cột được chọn
  • Cùng một số biểu thức cột
  • Cùng kiểu dữ liệu
  • Có chúng trong cùng một trật tự

Nhưng chúng không cần phải có cùng chiều dài.


Cú pháp

Cú pháp cơ bản của mệnh đề UNION trong SQL như sau:

 SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]UNIONSELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] 

Ở đây, điều kiện nhất định có thể là bất kỳ biểu hiện nào dựa trên yêu cầu của bạn.


Ví dụ

Xem xét hai bảng sau.

Bảng 1 - CUSTOMERS Bảng dưới đây.

 +----+----------+-----+-----------+----------+ | ID | NAME     | AGE | ADDRESS   | SALARY   | +----+----------+-----+-----------+----------+ |  1 | Ha Anh   |  32 | Da Nang   |  2000.00 | |  2 | Van Ha   |  25 | Ha Noi    |  1500.00 | |  3 | Vu Bang  |  23 | Vinh      |  2000.00 | |  4 | Thu Minh |  25 | Ha Noi    |  6500.00 | |  5 | Hai An   |  27 | Ha Noi    |  8500.00 | |  6 | Hoang    |  22 | Ha Noi    |  4500.00 | |  7 | Binh     |  24 | Ha Noi    | 10000.00 | +----+----------+-----+-----------+----------+ 

Bảng 2 - Bảng ORDERS như sau.

 +-----+---------------------+-------------+--------+ |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 join hai bảng trong câu lệnh SELECT của chúng ta như sau:

 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; 

Điều này sẽ tạo ra kết quả sau:

 +------+----------+--------+---------------------+ | ID   | NAME     | AMOUNT | DATE                | +------+----------+--------+---------------------+ |    1 | Ha Anh   |   NULL | NULL                | |    2 | Van Ha   |   1560 | 2009-11-20 00:00:00 | |    3 | Vu Bang  |   3000 | 2009-10-08 00:00:00 | |    3 | Vu Bang  |   1500 | 2009-10-08 00:00:00 | |    4 | Thu Minh |   2060 | 2008-05-20 00:00:00 | |    5 | Hai An   |   NULL | NULL                | |    6 | Hoang    |   NULL | NULL                | |    7 | Binh     |   NULL | NULL                | +------+----------+--------+---------------------+ 

Mệnh đề UNION ALL

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ác hàng trùng lặp.

Các quy tắc tương tự áp dụng cho mệnh đề UNION sẽ áp dụng cho toán tử UNION ALL.

Cú pháp

Cú pháp cơ bản của UNION ALL như sau.

 SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]UNION ALLSELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] 

Ở đây, điều kiện có thể là bất kỳ dựa trên yêu cầu của bạn.

Ví dụ

Giả sử ta có hai bảng sau:

Bảng 1 - Bảng CUSTOMERS.

 +----+----------+-----+-----------+----------+ | ID | NAME     | AGE | ADDRESS   | SALARY   | +----+----------+-----+-----------+----------+ |  1 | Ha Anh   |  32 | Da Nang   |  2000.00 | |  2 | Van Ha   |  25 | Ha Noi    |  1500.00 | |  3 | Vu Bang  |  23 | Vinh      |  2000.00 | |  4 | Thu Minh |  25 | Ha Noi    |  6500.00 | |  5 | Hai An   |  27 | Ha Noi    |  8500.00 | |  6 | Hoang    |  22 | Ha Noi    |  4500.00 | |  7 | Binh     |  24 | Ha Noi    | 10000.00 | +----+----------+-----+-----------+----------+ 

Bảng 2 - 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 join hai bảng trong câu lệnh SELECT của chúng ta như sau:

 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; 

Điều này sẽ tạo ra kết quả sau:

 +------+----------+--------+---------------------+ | ID   | NAME     | AMOUNT | DATE                | +------+----------+--------+---------------------+ |    1 | Ha Anh   |   NULL | NULL                | |    2 | Van Ha   |   1560 | 2009-11-20 00:00:00 | |    3 | Vu Bang  |   3000 | 2009-10-08 00:00:00 | |    3 | Vu Bang  |   1500 | 2009-10-08 00:00:00 | |    4 | Thu Minh |   2060 | 2008-05-20 00:00:00 | |    5 | Hai An   |   NULL | NULL                | |    6 | Hoang    |   NULL | NULL                | |    7 | Binh     |   NULL | NULL                | |    3 | Vu Bang  |   3000 | 2009-10-08 00:00:00 | |    3 | Vu Bang  |   1500 | 2009-10-08 00:00:00 | |    2 | Van Ha   |   1560 | 2009-11-20 00:00:00 | |    4 | Thu Minh |   2060 | 2008-05-20 00:00:00 | +------+----------+--------+---------------------+ 

Có hai mệnh đề khác (tức là các toán tử), giống như mệnh đề UNION.

  • Mệnh đề INTERSECT trong SQL - Mệnh đề này được sử dụng để kết hợp hai câu lệnh SELECT, nhưng trả về các hàng chỉ từ câu lệnh SELECT đầu tiên giống với một dòng trong câu lệnh SELECT thứ hai.
  • SQL Mệnh đề EXCEPT trong SQL - Mệnh đề này kết hợp hai câu lệnh SELECT và trả về các hàng từ câu lệnh SELECT đầu tiên không được trả về bởi câu lệnh SELECT thứ hai.
Bài tiếp theo: Giá trị NULL trong SQL


ĐÁNH GIÁ NỘI DUNG 0.0/5 0 lượt đánh giá
Bạn thấy nội dung này thế nào?
Mỗi trình duyệt/tài khoản được chấm lại sau 24 giờ.
Báo bài lỗiGiúp MT.Net.VN phát hiện nội dung cần kiểm tra
Báo lỗi được ghi vào hệ thống để Admin kiểm tra. Không dùng chức năng này để gửi hỗ trợ cá nhân.

Bài học liên quan

Các bài khác có cùng khóa học cha theo baihoc_sub.

Home Dịch vụ Khóa học CPanel