Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [MySQL] Nhân viên và người quản lý

    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.

    • Định dạng đầu vào:

      SETUP SQL tạo bảng nhanvien(id INT, ten VARCHAR(50), quanly_id INT) và chèn dữ liệu.

    • Ràng buộc đầu vào:

      Số dòng ≤30\le 30≤30; nếu quanly_id khác NULL thì luôn tồn tại nhân viên có id tương ứng.

    • Định dạng đầu ra:

      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:

    An đứng đầu nên in Khong co; Bình và Chi do An quản lý; Dũng do Bình quản lý.

    Đang tải editor...