我试图回显员工姓名和经理姓名
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
echo :
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()
返回的内容中访问这些字段。
关于php - 当表列连接两次时从 mySQL 回显数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34803606/