- Giới thiệu
- MySQL là gì
- Cài đặt
- Quản lý
- Cú pháp MySQL-PHP
- Kết nối MySQL
- Tạo Database
- Xóa Database
- Chọn cơ sở dữ liệu
- Kiểu dữ liệu
- Tạo bảng
- Xóa bảng
- Truy vấn Insert
- Truy vấn Select
- Mệnh đề Where
- Truy vấn Update
- Truy vấn Delete
- Mệnh đề Like
- Mệnh đề Order By
- Sử dụng Join
- Giá trị NULL
- Regexp trong MySQL
- Transaction trong MySQL
- Lệnh Alter
- Chỉ mục (Index)
- Bảng tạm (Temporary Table)
- Mô phỏng bảng
- Thông tin Database
- Sử dụng Sequence
- Xử lý bản sao
- SQL Injection
- Export và Sao lưu (Backup)
- Import và Phục hồi (Recovery)
- Mệnh đề Group By
- Mệnh đề In
- Mệnh đề Between
- Từ khóa Union
- Hàm hữu ích
- Tài liệu tham khảo
- Học SQL cơ bản và nâng cao
- Học PHP cơ bản và nâng cao
Từ khóa UNION trong MySQL
Bạn có thể sử dụng từ khóa UNION nếu bạn muốn lựa chọn các hàng (hàng này sau hàng kia) từ các bảng hoặc một số tập hợp các hàng từ một bảng đơn dưới dạng một tập kết quả đơn.
UNION là có sẵn với MySQL 4.0. Chương này minh họa cách sử dụng nó.
Giả sử bạn có 2 bảng: bảng nhanvienIT liệt kê các nhân viên IT chuyên sản xuất phần mềm và một bảng nhanvienBH chuyên bán các sản phẩm phần mềm, và một bảng thứ ba liệt kê chi nhánh của công ty bạn, và bạn muốn tạo một danh sách để liệt kê tất cả địa chỉ của nhân viên chẳng hạn. UNION cung cấp một cách để thực hiện điều này. Giả sử 3 bảng có nội dung sau:
//bang nhanvienIT co cac ban ghi sau: mysql> SELECT * FROM nhanvienIT; +--------------+-------+-----------------+ | ho | ten | diachi | +--------------+-------+-----------------+ | Nguyen Van | Hoang | Dong Da | | Hoang Thanh | Tung | Ba Dinh | +--------------+-------+-----------------+ //bang nhanvienBH co cac ban ghi sau: mysql> SELECT * FROM nhanvienBH; +--------+------------+--------------+ | fname | lname | addr | +--------+------------+--------------+ | Huong | Tran Thi | Kim Lien | | Thanh | Nguyen Ba | Cau Giay | | Tung | Do Manh | Hoang Mai | +--------+------------+--------------+ //bang chinhanhlamviec co cac ban ghi sau mysql> SELECT * FROM chinhanhlamviec; +-----------+--------------+ | chinhanh | diachi | +-----------+--------------+ | Kim Lien | 234 Xa Dan | | Cau Giay | 556 Cau Giay | +-----------+--------------+
Việc 3 bảng có tên các cột khác nhau không là vấn đề gì. Truy vấn sau minh họa cách chọn ten và diachi từ 3 bảng cùng môt lúc:
SELECT ho, ten, diachi FROM nhanvienIT UNION SELECT lname, fname, addr FROM nhanvienBH UNION SELECT chinhanh, '', diachi FROM chinhanhlamviec;
Kết quả là:
Nếu bạn muốn lựa chọn tất cả bản ghi, bao gồm các bản sao, bạn sử dụng thêm ALL sau UNION:
SELECT ho, ten, diachi FROM nhanvienIT UNION ALL SELECT lname, fname, addr FROM nhanvienBH UNION SELECT chinhanh, '', diachi FROM chinhanhlamviec;
Các bài học MySQL phổ biến khác tại AZCode: