我遇到了这个问题,我试图从Employee表中获取一条记录,其中有五列名为EmpId,Name,Age,Post和ManagerId。 ManagerId是Empid的Employee表的外键和引用表。它意味着经理也是公司的雇员。
问题是我想获得一条记录,其中包含与员工记录关联的empId,Name和Manager Name。那么mysql的查询是什么呢。这是表信息: -
DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
`empId` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(45) default NULL,
`Age` varchar(45) default NULL,
`Post` varchar(45) default NULL,
`managerId` int(10) unsigned default NULL,
PRIMARY KEY (`empId`),
KEY `FK_employee_1` (`managerId`),
CONSTRAINT `FK_employee_1` FOREIGN KEY (`managerId`) REFERENCES `employee` (`empId`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
答案 0 :(得分:1)
您可以使用Left Join with Self。
来完成此操作SELECT e1.empId, e1.Name,
e2.Name AS manager_name
FROM employee e1
LEFT JOIN employee e2
ON e1.managerId = e2.empId