Php 如何从相关表的同一字段回显值

Php 如何从相关表的同一字段回显值,php,mysql,inner-join,alias,Php,Mysql,Inner Join,Alias,我有两个相关的表:包含3列的合同:ContractsID、AreaManager和AreaLeader。然后我有一个包含两列的EmployeesID和EmployeeName的Employees表。EmployeeID是AreaManager和AreaLeader的外键。我正在尝试创建一个SELECT查询来回显CONSTRACTID、区域经理的姓名和区域领导的姓名 这就是我所拥有的 $query = "SELECT Contracts.ContractsID, Contracts.AreaLea

我有两个相关的表:包含3列的合同:ContractsID、AreaManager和AreaLeader。然后我有一个包含两列的EmployeesID和EmployeeName的Employees表。EmployeeID是AreaManager和AreaLeader的外键。我正在尝试创建一个SELECT查询来回显CONSTRACTID、区域经理的姓名和区域领导的姓名

这就是我所拥有的

$query = "SELECT Contracts.ContractsID, Contracts.AreaLeader, Contracts.AreaManager, Employees.EmployeeName FROM Contracts 
INNER JOIN Employees ON Employees.EmployeeID = Contracts.AreaManager
INNER JOIN Employees ON Employees.EmployeeID = Contracts.AreaLeader
但是,查询不起作用。我认为我应该使用表别名,但我有点难以做到这一点

我试过了,但没用:

$query = "SELECT c.ContractsID, m.Employees.EmployeeName as ManagerName, l.Employees.EmployeeName as LeaderName

FROM c.Contracts 

JOIN Employees m ON m.EmployeeID = c.AreaManager

JOIN Employees l ON l.EmployeeID = c.AreaLeader

任何帮助都将不胜感激

第二个查询的方法是正确的,但其中有语法错误。您的查询如下所示:

$query = "SELECT c.ContractsID, m.EmployeeName as ManagerName, l.EmployeeName as LeaderName
FROM Contracts c
JOIN Employees m ON m.EmployeeID = c.AreaManager
JOIN Employees l ON l.EmployeeID = c.AreaLeader"

原始查询不起作用的原因是,您与
员工加入了两次,并且需要为他们添加别名以进行区分

$query = "SELECT Contracts.ContractsID, Contracts.AreaLeader, Contracts.AreaManager, Employees.EmployeeName FROM Contracts 
INNER JOIN Employees Employee1 ON Employee1.EmployeeID = Contracts.AreaManager
INNER JOIN Employees Employee2 ON Employee2.EmployeeID = Contracts.AreaLeader
除非您想这样做,否则您不需要别名
合同


您的第二个查询失败,因为您没有正确地别名
合同
。你应该把
Contracts放在c
而不是
c。Contracts

提供了一些示例数据和预期结果。我觉得你的第二个查询很好,除了分别为
m.EmployeeName
l.EmployeeName
m.EmployeeName
l.EmployeeName
m.EmployeeName之外。您是否直接在mysql上运行查询?它返回结果了吗?您是如何决定该查询不起作用的?