如何从相关 table 的同一字段回显值
How to echo values from the same field of the related table
我有两个相关的 table:包含 3 列的合同:ContractsID、AreaManager 和 AreaLeader。然后我有 Employees table 和 2 列:EmployeesID、EmployeeName。 EmployeeID 是 AreaManager 和 AreaLeader 的外键。我正在尝试创建一个 SELECT 查询来回显 ContractID、区域经理的姓名和区域负责人的姓名。
这就是我所拥有的;
$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
但是,查询不起作用。我相信我应该使用 table 别名,但我有点为此苦苦挣扎。
我试过了,但没用:
$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"
你原来的查询不起作用的原因是因为你用Employees
连接了两次,你需要给它们起别名来区分。
$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
除非你想这样做。
您的第二个查询失败,因为您没有正确地使用别名 Contracts
。你应该把 Contracts c
而不是 c.Contracts
.
我有两个相关的 table:包含 3 列的合同:ContractsID、AreaManager 和 AreaLeader。然后我有 Employees table 和 2 列:EmployeesID、EmployeeName。 EmployeeID 是 AreaManager 和 AreaLeader 的外键。我正在尝试创建一个 SELECT 查询来回显 ContractID、区域经理的姓名和区域负责人的姓名。
这就是我所拥有的;
$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
但是,查询不起作用。我相信我应该使用 table 别名,但我有点为此苦苦挣扎。
我试过了,但没用:
$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"
你原来的查询不起作用的原因是因为你用Employees
连接了两次,你需要给它们起别名来区分。
$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
除非你想这样做。
您的第二个查询失败,因为您没有正确地使用别名 Contracts
。你应该把 Contracts c
而不是 c.Contracts
.