Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在视图中实现多对多关系下面的视图中,我想显示Employee&;视图中同一表中的senctionBy_Mysql_Sql_Inner Join_Sql View - Fatal编程技术网

Mysql 如何在视图中实现多对多关系下面的视图中,我想显示Employee&;视图中同一表中的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,

我正在尝试创建一个视图,希望在其中查看实际数据,而不是ID,因此我创建了以下名为视图\u leave的视图,即我希望在视图中显示两次员工姓名,第一次为员工,第二次为老板(senctionBy)


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