SQL中的左外连接,右表中缺少数据

时间:2016-07-12 07:18:57

标签: mysql join left-join

我在Mysql数据库中有以下数据库模式

用户

  • ID
  • 名称

考勤

  • ID
  • USER_ID
  • checked_on(日期)

现在,对于给定的日期范围,我想构建一个列出用户和另一列的报告,该列说明当天是否存在。

我试图使用左外连接使用以下查询完成它

select * from users left outer join attendance on users.id = attendance.user_id where users.id in (11, 12);

如何修改上述查询以便我可以获取报告?

1 个答案:

答案 0 :(得分:2)

您可以使用如下查询:

select u.*, 
       IF(a.id IS NOT NULL, 'Present', 'Not Present') AS IsPresent 
from users u
left outer join attendance a
   on u.id = a.user_id and a.checked_on = ?
where u.id in (11, 12);