Chào các bạn, mình gặp một vấn đề nhỏ như sau mà mãi vẫn chưa tìm ra câu trả lời. VD mình có 2 bảng GIANG_VIEN(id, name, id_chucvu1, id_chucvu2, id_chucvu3) CHUC_VU(id_cv, tenchucvu) Mô tả: Một giảng viên có thể làm nhiều chức vụ, từ id_chucvu ở bảng GIANG_VIEN, hiển thị tên các chức vụ của giảng viên đó, tên chức vụ lấy từ bảng CHUC_VU GIANG_VIEN idnameid_chucvu1id_chucvu2id_chucvu31Nguyễn Văn A1342Nguyễn Văn B13Nguyễn Văn C34 CHUC_VU id_cvtenchucvu1Giảng viên2Hành chính3Bảo vệ4Quản thư3Nguyễn Văn C Kết quả idnametenchucvu1tenchucvu2tenchucvu31Nguyễn Văn AGiảng viênBảo vệQuản thư2Nguyễn Văn BGiảng viên3Nguyễn Văn CBảo vệQuản thư Mọi người hướng dẫn mình viết cấu lệnh sql với, xin cảm ơn!
Nói nôm na là như thế này Mình có 2 bảng dữ liệu: GIAOVIEN (id, ten, id_cv1, id_cv2) CHUCVU(id_cv, tenchucvu) Mọi người cho em hỏi làm sao để hiển thị tên chức vụ 1 và 2 của giáo viên đó với. Xin cảm ơn mọi người!
Thường thì trong các mã nguồn php & mysql thì mình thấy người ta không chia riêng nhiều chức vụ theo nhiều trường như chức vụ 1, chức vụ 2, chức vụ 3! Vì thực tế người ta thường gom nó lại chung một trường là chức vụ! rồi các id_chucvu người ta cách nhau bởi dấu phẩy, sau đó người ta tách từng id_chucvu riêng rồi tham chiếu đến từng tên chức vụ trong bảng chức vụ! Một số bạn đã quen với CSDL của VBB hay nukeviet, joomla người ta thường phân chia quyền hạn cho một user theo cách này! Và mình nghĩ vấn đề của bạn cũng tương tự!
Chắc là cái này Mã: select GV.*,CV.tenchucvu AS CHUCVU1,CV2.tenchucvu AS CHUCVU2 from GIAOVIEN GV left join CHUCVU CV ON GV.id_cv1=CV.id_cv LEFT JOIN CHUCVU CV2 ON GV.id_cv2=CV2.id_cv