Bảng nhân viên lưu cột quanly_id trỏ tới chính bảng đó (người quản lý cũng là một nhân viên). Hãy in danh sách nhân viên kèm tên người quản lý trực tiếp; ai không có quản lý (NULL) thì hiển thị Khong co.
Đây là bài self-join: nối bảng nhanvien với chính nó qua hai bí danh, dùng LEFT JOIN và IFNULL.
Lược đồ bảng nhanvien:
| Cột | Kiểu | Ý nghĩa |
|---|---|---|
| id | INT | Khóa chính |
| ten | VARCHAR(50) | Tên nhân viên |
| quanly_id | INT | id của người quản lý trực tiếp, NULL nếu không có |
Ví dụ: nhân viên Bình có quanly_id = 1 (An) thì in Bình, An; An là giám đốc (NULL) thì in An, Khong co.
SETUP SQL tạo bảng nhanvien(id INT, ten VARCHAR(50), quanly_id INT) và chèn dữ liệu.
Số dòng ≤30; nếu quanly_id khác NULL thì luôn tồn tại nhân viên có id tương ứng.
Mỗi dòng: id, ten nhân viên, tenquanly (tên người quản lý hoặc Khong co). Sắp xếp theo id nhân viên tăng dần.
Ví dụ:
Đầu vào:
CREATE TABLE nhanvien (id INT PRIMARY KEY, ten VARCHAR(50), quanly_id INT);
INSERT INTO nhanvien VALUES (1,'An',NULL),(2,'Bình',1),(3,'Chi',1),(4,'Dũng',2);
Đầu ra:
1 An Khong co
2 Bình An
3 Chi An
4 Dũng Bình
Giải thích:
Đang tải editor...