大家好,请帮我解决这个从四个表中获取数据的查询。这是编写查询的正确方法吗
SELECT task.employee_id , task.user_id , task.service_id from task
INNER JOIN employee employee.name , employee.pic ON employee.pno =employee_id
INNER JOIN user user.name , user.pic ON user.pno = user_id
INNER JOIN service service.name , service.description ON service.service_id =service_id";
当我获取数据时,我将如何像我们一样显示它们 $a = $data['id'];
并且出现错误
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result,
现在我已经更新到此
function viewAll()
{
$this->query = "SELECT task.employee_id , task.user_id , task.service_id, employee.name , employee.pic, user.name , user.pic, service.name , service.description
FROM task INNER JOIN employee ON employee.pno = task.employee_id INNER JOIN user ON user.pno = employee.user_id INNER JOIN service ON service.service_id = user.service_id;";
$rd = $this->executeQuery();
$recordsArray = array(); // create a variable to hold the informationm
while (($row = mysqli_fetch_array($rd)) ){
$recordsArray[] = $row; // add the row in to the results (data) array
}
我收到此错误
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result,
最佳答案
不,这不正确。
SELECT task.employee_id , task.user_id , task.service_id, employee.name , employee.pic, user.name , user.pic, service.name , service.description
FROM
task
INNER JOIN employee ON employee.pno = task.employee_id
INNER JOIN user ON user.pno = employee.user_id
INNER JOIN service ON service.service_id = user.service_id;
我无法告诉你它到底应该是什么,但应该更接近。我根据原始查询对您的连接和列名称进行了最佳猜测。您想要“查看”的所有字段都需要位于 SELECT
子句中。当您加入另一张 table 时,您需要解释如何加入。例如,您要从 task
加入 employee
,因此我假设 task
有一个名为 emmployee_id
的列(或者类似)这是您需要加入的领域。
关于php - 内连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440319/