Mysql 在可能不存在的位置连接2个表

Mysql 在可能不存在的位置连接2个表,mysql,join,Mysql,Join,我有两个简单的表格: 员工 员工报告 员工应每天提交1份报告 现在,我们需要: 员工提交的所有报告一目了然,没有报告的员工只会显示一个空白报告字段。。基本上,这意味着所有员工都将被列出,无论他们是否有报告 我的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份报告

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

我的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_报告的左联接,但是

问题是:由于我必须针对一个特定的报告日期,mYSQL只输出带有报告的员工。。没有提交的人不在名单上

下面是我的基本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'

我可以在一个查询中完成这项工作吗?

您的where还需要能够检查空值,所以请进行检查

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

你能回到你以前的问题,也许+1答案对你有帮助,并接受“勾选”标记那些最好的吗?