使用可能不存在的WHERE加入2个表

时间:2013-01-07 13:06:02

标签: mysql join

我有两个简单的表格:

  • 员工
  • employee_reports

员工应每天提交1份报告。

现在,需要: 一目了然地看到员工提交的所有报告,没有报告的员工只会显示一个空白的REPORT字段。基本上这意味着所有员工都会被列出,无论他们是否有报告

我的GUI上的示例输出:

2012-01-03
Employee 1 : I ate a burger
Employee 2 : I ate french frice
Employee 3 : 
Employee 4 : i ate hotdog

我可以轻松地在多个SQL查询中执行此操作.1用于按特定顺序列出所有员工,另一个用于查询员工的每个报告。

当然没有效率..

我可以轻松地在employee表上创建employee_reports的LEFT JOIN,但是

问题:由于我必须针对特定的报告日期,因此mYSQL仅输出具有REPORT的员工..未提交的人员未列出。

这是我的基本sql

的示例
SELECT
employees.eid,
employees.fname,
employees.lname,
employee_reports.report
FROM
employees
LEFT JOIN employee_reports ON employees.eid = employee_reports.eid
WHERE 
report_date = '2013-01-03'

我可以在一个查询中执行此操作吗?

1 个答案:

答案 0 :(得分:2)

您的位置也需要能够检查空值,因此请将其设为

SELECT
employees.eid,
employees.fname,
employees.lname,
employee_reports.report
FROM
employees
LEFT JOIN employee_reports ON employees.eid = employee_reports.eid
WHERE 
report_date = '2013-01-03'
OR report_date IS NULL