如何使用 PHP 从一对多 SQL 关系中检索数据



我有两个表。一个称为"员工",并具有一个名为"角色"的列。我还有另一个名为"角色"的表,其中有两列"role_id"和"名称"。

我已经在MySQL中使用外键链接了两者(我认为!(,通过phpmyadmin转到关系视图并选择适当的设置。

现在在PHP中,我有以下代码:

$employees = "SELECT employee_id, first_name, last_name, role 
FROM employee 
WHERE status = 1"; 
$employee = mysqli_query($link, $employees);
foreach ($employee as $employeeInfo) {
<?php echo $employeeInfo['role'];?>
}

但是,这将返回我在员工表中分配给角色的编号。不是链接表中的名称。

我认为这与必须使用 JOIN 条件是 PHP 代码有关。然而,做一些实验只会让我得到空白的结果。

在这种情况下,您有什么从第二个表中输出角色名称的提示吗?

谢谢

内部连接应该真的可以工作...

SELECT employee_id, first_name, last_name, role.name as role 
FROM employee 
INNER JOIN role ON employee.role = role.role_id 
WHERE status = 1;

使用 join 获取角色的名称。

$employees = "SELECT a.employee_id, a.first_name, a.last_name, b.name as role 
FROM employee a join role b on a.role = b.role_id
WHERE a.status = 1"; 
$employee = mysqli_query($link, $employees);
foreach ($employee as $employeeInfo) {
echo $employeeInfo['role'];
}

最新更新