我正在处理考勤项目。因为我将在特定日期缺勤的学生存储在表“出勤”中,字段为 -> sno、rollno、subject_code、date。如果所有学生都在场,那么我会将 subject_code、日期和 rollno 存储为 NULL,这意味着“所有学生都在场”
------|--------|------------|-----------|
sno |rollno |subject_code| date |
1 | 1234 | a110 | 12-12-2012|
2 | 1235 | a110 | 12-12-2012|
3 | 1235 | a111 | 14-12-2012|
我正在从带有字段的“学生”表中获取学生的详细信息 -> rollno,name
|--------|-------|
| rollno | name |
| 1234 | xyz |
| 1235 | abc |
| 1236 | mno |
| 1237 | qrs |
现在我想列出学生的出勤情况,这样对于特定日期的输出应该是这样假设日期“12-12-2012”的列表
list of "12-12-2012" for subject a110 list of "14-12-2012" for subject a111
|-------|------|---------| |-------|------|---------|
|rollno | name | status | |rollno | name | status |
| 1234 | xyz | Absent | | 1234 | xyz | Present |
| 1235 | abc | Absent | | 1235 | abc | Absent |
| 1236 | mno | Present | | 1236 | mno | Present |
| 1237 | qrs | Present | | 1237 | qrs | Present |
请帮帮我..
最佳答案
使用 LEFT JOIN
找出出勤表中没有一行的学生。 (那些存在)
SELECT s.rollno,
s.name,
CASE WHEN a.rollno IS NULL THEN 'Present'
ELSE 'Absent'
END as status
FROM student s
LEFT JOIN attendance a
ON s.rollno = a.rollno
关于mysql - MYSQL合并两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34748084/