从3个表中选择记录

时间:2012-07-26 07:28:58

标签: php mysql sql join

我有以下列的这3个表:

  1. employee:empId(PK),hireDate,jobTitle,department(FK),status(FK)
  2. status:statusId,statusDesc
  3. department:departmentId,deptName,supervisorId,deptHeadId
  4. 我想要做的是显示以下列:hireDatejobTitledeptNamestatusDesc

    我遇到的问题是它没有显示statusDescdeptName记录。

    这是我的代码/ sql查询:

    $empId = $_GET['empId'];
    
    $result = mysql_query("SELECT e.empId, e.hireDate, e.jobTitle, d.deptName, s.statusDesc 
                            FROM employee e , department d, status s
                            WHERE e.department = d.departmentId AND e.status = s.statusId AND e.empId = $empId;");
    

2 个答案:

答案 0 :(得分:0)

从您的查询中,为员工提供有效的部门和有效状态 - 如果列为空,则是因为部门和状态表中的描述符字段为空(deptName和statusDesc)。

答案 1 :(得分:0)

试试这个。

$empId = $_GET['empId'];

$result = mysql_query("SELECT e.empId, e.hireDate, e.jobTitle, d.deptName, s.statusDesc 
                        FROM employee e 
                        INNER Join department d on e.department = d.departmentId
                        INNER Join status s on e.status = s.statusId
                        WHERE e.empId = $empId;");