首页 > 解决方案 > 每天查看数据 MySQL

问题描述

我正在做一个关于办公室员工日常评估测试的简单应用程序。

应用程序将几个每日问题的评分结果存储在数据库中,每日输入每日问题。

我的 MySQL 数据库中有 2 个表,其中有:

  1. account_table
  2. 评估表

这是 account_table :

accountID | accountName | accountEmail  
        1 | John        | john@example.com 
        2 | Derick      | derick@example.com
        3 | Ratna       | ratna@example.com 

这是assessment_table:(例如今天是2020-10-08)

     assessmentID  |  accountID    |  assessmentScore | assessmentDate
      1            |   1           |  50              | 2020-10-07
      2            |   2           |  75              | 2020-10-07
      3            |   3           |  93              | 2020-10-07
      4            |   2           |  47              | 2020-10-08
      5            |   3           |  80              | 2020-10-08
      

如何查看今天未进行评估的账户?
谢谢你的帮助,问候。

标签: mysql

解决方案


SELECT act.*
FROM account_table act
LEFT JOIN assessment_table ast ON act.accountID = ast.accountID 
                              AND ast.assessmentDate = '2020-10-08'
WHERE ast.accountID IS NULL

或者

SELECT *
FROM account_table act
WHERE NOT EXISTS ( SELECT NULL 
                   FROM assessment_table ast 
                   WHERE act.accountID = ast.accountID 
                     AND ast.assessmentDate = '2020-10-08' )

您可以始终使用forCURRENT_DATE而不是'2020-10-08'文字来接收当天的输出。

PS。我没有显示WHERE NOT IN变体 - 在几乎所有情况下它都比较慢。


推荐阅读