mysql - MYSQL合并两列

标签 mysql

我正在处理考勤项目。因为我将在特定日期缺勤的学生存储在表“出勤”中,字段为 -> 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/

相关文章:

php - 使用 PHP MYSQL 和 foreach 语句使用多级菜单

php - 多个事件日期更新到数据库

javascript - 如何在不使用表单元素的情况下将div内容添加到mysql

php - 如何使用 Doctrine 2 提高 LARGE 导入的性能

php - 如何在 do-while 循环中回显所选项目?

php - 提高服务器验证中的密码安全性

MySQL 对每 X 行求和

php - 数据库信息到Facebook Page Tab? XML 和 curl

Mysql选择最大变量值

php - <select> 的值不在 <options> 中