如何查询mysql表中的缺勤情况?
我有3个表,学习者表有学习者信息,站点表有学习者参加的站点信息,考勤表有每个用户每天的时钟记录 考勤表与(id_编号)连接到学习者表。 学习者表与(site_id)连接到site表 我有以下表格:如何查询mysql表中的缺勤情况?,mysql,sql,Mysql,Sql,我有3个表,学习者表有学习者信息,站点表有学习者参加的站点信息,考勤表有每个用户每天的时钟记录 考勤表与(id_编号)连接到学习者表。 学习者表与(site_id)连接到site表 我有以下表格: 学习者 |---------------------|--------|--------------|-------------| | id_number |site_id | fname | lname | |---------------------|
学习者
|---------------------|--------|--------------|-------------|
| id_number |site_id | fname | lname |
|---------------------|--------|--------------|-------------|
| 552 | 1 | John | Doe |
|---------------------|--------|--------------|-------------|
| 887 | 2 | Peter | Doe |
|---------------------|--------|--------------|-------------|
| 567 | 2 | Mary | Doe |
|---------------------|--------|--------------|-------------|
站点
|---------------------|------------------|
| site_id | Site_name |
|---------------------|------------------|
| 1 | Denver |
|---------------------|------------------|
| 2 | Texas |
|---------------------|------------------|
出勤率
|---------------------|------------------|
| id_number | date |
|---------------------|------------------|
| 552 | 2018-06-05 |
|---------------------|------------------|
| 887 | 2018-06-05 |
|---------------------|------------------|
代码:
需要帮助才能得到缺少的记录,然后数一数。我不知道你想说什么。请调整您的格式。您预期的结果是什么?将
考勤
加入学习者
只会返回参加考勤
的学习者。然后添加其中learner.id\u number不在…
将过滤掉它们,因此您将得到一个空的result.format更新。预期结果是只看到所选日期范围内的考勤表中没有的学习者。@Keith您需要知道他们缺席的日期,还是只知道日期范围内缺席的天数?
SELECT fname , lname, attendance.id_number , site_name , attendance.date
FROM attendance
JOIN learner on attendance.id_number = learner.id_number
JOIN site ON learner.site_id=site.siteid
WHERE learner.id_number NOT IN (
SELECT attendance.id_number
FROM attendance
WHERE date BETWEEN '2018-06-01' AND '2018-06-05' )
ORDER BY learner.site_id ASC