我有一个系统,员工可以输入他们的每日日志详细信息。
我想要一个mysql查询,它提供一周的报告,如果有人没有输入他们的日志,也会返回null。
这是我尝试过的。
select employee_log.*,employee.* from employee_log
left join employee on (employee_log.employee_id = employee.id)
group by employee.id
但它只在员工输入日志时返回数据。但我还想表明,如果有任何员工在某一天没有输入他们的日志。
答案 0 :(得分:1)
试试这样:
select * from employee
left join employee_log on (employee.id = employee_log.employee_id)
group by employee.id
您希望获取他们记录或未记录的员工的所有详细信息,因此请使用左联接employee left join employee_log
答案 1 :(得分:1)
LEFT JOIN关键字返回左表(table1)中的所有行, 使用右表(table2)中的匹配行。结果是 当没有匹配时,右侧为NULL。
在编写SQL语句时,您需要将employee_log与employee交换,因为目前您从employee_log返回所有行。
select employee_log.*,employee.* from employee
left join employee_log on (employee_log.employee_id = employee.id)
group by employee.id