Mysql 如何在视图中实现多对多关系下面的视图中,我想显示Employee&;视图中同一表中的senctionBy
我正在尝试创建一个视图,希望在其中查看实际数据,而不是ID,因此我创建了以下名为视图\u leave的视图,即我希望在视图中显示两次员工姓名,第一次为员工,第二次为老板(senctionBy)Mysql 如何在视图中实现多对多关系下面的视图中,我想显示Employee&;视图中同一表中的senctionBy,mysql,sql,inner-join,sql-view,Mysql,Sql,Inner Join,Sql View,我正在尝试创建一个视图,希望在其中查看实际数据,而不是ID,因此我创建了以下名为视图\u leave的视图,即我希望在视图中显示两次员工姓名,第一次为员工,第二次为老板(senctionBy) 您可以在employee表中加入两次。您似乎还希望避免使用休假类型表 CREATE TABLE `leave_availed` ( `LeaveID` int(10) UNSIGNED NOT NULL, `EmpID` int(11) UNSIGNED NOT NULL,
您可以在
employee
表中加入两次。您似乎还希望避免使用休假类型表
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) ,
);
这两个表都称为leave_availed?为什么你认为这是一种多对多的关系?(根据你迄今发表的文章,一名员工可以休假很多次,这是一对多的关系),而你似乎并不关心休假权利。但这看起来像一个非常简单的2表联接。请将样本数据和预期输出作为文本添加到问题中。我的错误,第二个表是“employee”表。leave_Available表在两列中与employee表链接。(1) empID指的是员工,第二个是制裁,也是员工(老板),在这种情况下,您加入员工两次,一次是员工,一次是senctionby。顺便说一句,senction不是一个英语单词,你的意思是“被制裁”吗。如何实施?。我寻找帮助,但找不到正确的解决方案。
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