http://vietjack.com/sql/index.jsp Copyright © vietjack.com Mệnh đề UNION SQL Mệnh đề/Toán tử UNION SQL sử dụng để kết hợp kết hai nhiều lệnh SELECT mà không trả ghi Để sử dụng UNION, lệnh SELECT phải có số cột chọn, số biểu thức cột, kiểu liệu, chúng có thứ tự, chúng khơng cần phải có độ dài Cú pháp Cú pháp mệnh đề UNION SQL sau: SELECT cot1 [, cot2 ] FROM bang1 [, bang2 ] [WHERE dieu_kien] UNION SELECT cot1 [, cot2 ] FROM bang1 [, bang2 ] [WHERE dieu_kien] Tại đây, dieu_kien cho biểu thức dựa theo yêu cầu bạn Ví dụ Giả sử có hai bảng, bảng SINHVIEN có ghi sau: + + -+ -+ -+ + | ID | TEN | TUOI| KHOAHOC | HOCPHI | + + -+ -+ -+ -+ | | Hoang | 21 | CNTT | 4000000 | | Viet | 19 | DTVT | 3000000 | | Thanh | 18 | KTDN | | | Nhan | 19 | CK | 4500000 | | Huong | 20 | TCNH | 5000000 | | 4000000 | | | + + -+ -+ -+ -+ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/sql/index.jsp Copyright © vietjack.com Bảng MUONSACH có ghi sau: + -+ -+ -+ + |STT | NGAY | SINHVIEN_ID | SOTIEN | + -+ -+ -+ + | 102 | 2009-10-08 00:00:00 | | 320 | | 100 | 2009-10-08 00:00:00 | | 250 | | 101 | 2009-11-20 00:00:00 | | 280 | | 103 | 2008-05-20 00:00:00 | | 290 | + -+ -+ -+ + Bây giờ, kết hợp hai bảng lệnh SELECT sau: SQL> SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN LEFT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID UNION SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN RIGHT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID; Ví dụ cho kết quả: + + + + -+ | ID | TEN | SOTIEN | NGAY | + + + + -+ | | Hoang | NULL | NULL | | Viet | 280 | 2009-11-20 00:00:00 | | | Thanh | 320 | 2009-10-08 00:00:00 | | | Thanh | 250 | 2009-10-08 00:00:00 | | | Nhan | | | Huong | 290 | 2008-05-20 00:00:00 | | NULL | NULL | + + + + -+ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/sql/index.jsp Copyright © vietjack.com Mệnh đề UNION ALL SQL Tốn tử UNION ALL sử dụng để kết hợp nhiều kết hai lệnh SELECT bao gồm hàng Các qui tắc áp dụng cho UNION áp dụng cho toán tử UNION ALL Cú pháp Cú pháp UNION ALL sau: SELECT cot1 [, cot2 ] FROM bang1 [, bang2 ] [WHERE dieu_kien] UNION ALL SELECT cot1 [, cot2 ] FROM bang1 [, bang2 ] [WHERE dieu_kien] Ở đây, dieu_kien cho biểu thức cung cấp dựa theo yêu cầu bạn Ví dụ Giả sử có hai bảng, bảng SINHVIEN có ghi sau: + + -+ -+ -+ + | ID | TEN | TUOI| KHOAHOC | HOCPHI | + + -+ -+ -+ -+ | | Hoang | 21 | CNTT | 4000000 | | Viet | 19 | DTVT | 3000000 | | Thanh | 18 | KTDN | | | Nhan | 19 | CK | 4500000 | | Huong | 20 | TCNH | 5000000 | | 4000000 | | | + + -+ -+ -+ -+ Bảng MUONSACH có ghi sau: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/sql/index.jsp Copyright © vietjack.com + -+ -+ -+ + |STT | NGAY | SINHVIEN_ID | SOTIEN | + -+ -+ -+ + | 102 | 2009-10-08 00:00:00 | | 320 | | 100 | 2009-10-08 00:00:00 | | 250 | | 101 | 2009-11-20 00:00:00 | | 280 | | 103 | 2008-05-20 00:00:00 | | 290 | + -+ -+ -+ + Bây giờ, kết hợp hai bảng lệnh SELECT sau: SQL> SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN LEFT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID UNION ALL SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN RIGHT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID; Ví dụ cho kết quả: + + + + -+ | ID | TEN | SOTIEN | NGAY | + + + + -+ | | Hoang | NULL | NULL | | Viet | 280 | 2009-11-20 00:00:00 | | | Thanh | 320 | 2009-10-08 00:00:00 | | | Thanh | 250 | 2009-10-08 00:00:00 | | | Nhan | | | Huong | | Thanh | 320 | 2009-10-08 00:00:00 | | | Thanh | 250 | 2009-10-08 00:00:00 | | | Viet | 280 | 2009-11-20 00:00:00 | | 290 | 2008-05-20 00:00:00 | | NULL | NULL | http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/sql/index.jsp | | Nhan | Copyright © vietjack.com 290 | 2008-05-20 00:00:00 | + + + + -+ Ngồi ra, có hai mệnh đề khác (hoặc toán tử) mà tương tự mệnh đề UNION, bạn truy cập link để tìm hiểu chúng: Mệnh đề INTERSECT SQL: sử dụng để kết hợp hai lệnh SELECT, trả hàng từ lệnh SELECT mà đồng với hàn lệnh SELECT thứ hai Mệnh đề EXCEPT SQL : kết hợp hai lệnh SELECT trả hàng từ lệnh SELECT mà không trả lệnh SELECT thứ hai http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... http://vietjack.com /sql/ index.jsp Copyright © vietjack.com Mệnh đề UNION ALL SQL Toán tử UNION ALL sử dụng để kết hợp nhiều kết hai lệnh SELECT bao gồm hàng Các qui tắc áp dụng cho UNION áp dụng cho toán tử UNION. .. http://vietjack.com /sql/ index.jsp | | Nhan | Copyright © vietjack.com 290 | 2008-05-20 00:00:00 | + + + + -+ Ngồi ra, có hai mệnh đề khác (hoặc tốn tử) mà tương tự mệnh đề UNION, bạn...http://vietjack.com /sql/ index.jsp Copyright © vietjack.com Bảng MUONSACH có ghi sau: + -+ -+ -+ + |STT