使用sql查询检索具有空值的记录时遇到的问题

zu0ti5jz  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(351)

我面临的问题是获取雇员的记录,该记录在某些特定列中包含空值。
脚本:
我有下表:

employee_id      Name       job_id      department_id
(int)           (varchar)    (int)        (int)
-------------------------------------------------------
1                Sita         1             4
2                Ram          3             5
3                Hari       (null)        (null)

选择员工记录的查询如下:

SELECT 
            employees.EMPLOYEE_ID,
            employees.Name,
            jobs.job_title,
            departments.department_name,
        FROM
            employees,jobs,departments
        WHERE
            jobs.job_id=employees.job_id 
            AND departments.department_id=employees.department_id

测试完成:
通过上面的查询,我可以获取employee\u id=1和employee\u id=2的员工的记录。
面临的问题:
但是使用相同的查询,我无法获取employee_id=3的雇员的记录。
要求的结果:
应显示员工id=3的记录。
我需要什么样的修正才能得到我想要的结果?

ippsafx7

ippsafx71#

不要在句子中使用逗号 FROM 条款。始终使用适当的、明确的、标准的 JOIN 语法。
你只是想要一个 LEFT JOIN :

SELECT e.EMPLOYEE_ID, e.Name, j.job_title, d.department_name,
FROM employees e LEFT JOIN
     jobs j
     ON j.job_id = e.job_id LEFT JOIN
     departments d
     ON d.department_id = e.department_id;

相关问题