问题描述
CREATE TABLE `leave_availed` (
`LeaveID` int(10) UNSIGNED NOT NULL,`EmpID` int(11) UNSIGNED NOT NULL,`levType` tinyint(3) UNSIGNED DEFAULT NULL,`senctionBy` int(11) UNSIGNED NOT NULL,.....
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE employee (
empID int(11) UNSIGNED AUTO_INCREMENT,name varchar(100)
...
);
CREATE TABLE leavetype (
id int(3) UNSIGNED AUTO_INCREMENT,`type` varchar(20),);
我正在尝试创建一个视图,在该视图中我想查看实际数据而不是ID,因此我创建了一个名为 view_leave 的视图,即我想在视图1st中两次显示员工姓名员工第二名,老板第二名(senctionBy)
解决方法
您可以在employee
表上加入两次。您似乎还希望避免使用请假类型表。
create view v_leave_availed as
select la.*,emp.name emp_name,boss.name section_by_name,lt.type leave_type
from leave_availed la
inner join employee emp on emp.empid = la.empid
inner join employee boss on boss.empid = la.senctionBy
inner join leavetype lt on lt.id = la.levtype