当表列连接两次时从 mySQL 回显数据


echoing data From mySQL when table column joined twice

我正在尝试同时回显员工姓名和经理姓名

SQL查询:

SELECT * 
FROM `form` 
INNER JOIN `emp` AS employee
ON `form`.emp_ID = employee.emp_ID
INNER JOIN `emp` AS manager
ON `form`.manager_ID = manager.emp_ID

回波:

while($row = $result->fetch_assoc()){
echo $row['emp_name']; 
}

始终输出经理姓名。

已尝试以下方法:

$row['employee.emp_name']
$row['employee']['emp_name']

这一切都不起作用。

任何帮助不胜感激

当列具有相同的名称时,它们的值将在通过fetch_assoc()检索时重叠。您可以使用fetch_array()并通过数字索引引用列(不建议使用 SELECT * ,因为您无法轻松保证列的顺序),或者您必须显式列出列名并为其指定别名。例如:

SELECT emp.emp_name emp_emp_name, manager.emp_name manager_emp_name, ...

这将在结果中为您提供单独的不同名称的字段,然后您可以从fetch_assoc()返回的内容中访问这些字段。