如何在以下视图中实现视图中的多对多关系,我想在视图中的同一张表中显示Employee&senctionBy

问题描述

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)

View_leave

解决方法

您可以在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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...