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

时间:2016-01-15 02:49:39

标签: php mysql

我正在尝试回复员工姓名和经理姓名

SQL QUERY:

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

ECHO:

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

始终输出经理名称。

尝试了以下方法:

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

哪一切都行不通。

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

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

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

这会在结果中为您提供单独的明确命名的字段,然后您可以从fetch_assoc()返回的内容进行访问。