mysql - 需要获取所有当月未付款的学生

标签 mysql

我有两张 table

学生表:

id   studentname   admissionno
3    test3               3
2    test2               2
1    test                1

第二张表是费用:

id   studentid  created
1       3       2015-06-06 22:55:34
2       2       2015-05-07 13:32:48
3       1       2015-06-07 17:47:46

我需要获取当月未付款的学生,
我正在执行以下查询:

SELECT studentname FROM students 
    WHERE studentname != (select students.studentname from students
    JOIN submit_fee
    ON (students.id=submit_fee.studentid)
    WHERE MONTH(CURDATE()) = MONTH(submit_fee.created)) ;

我收到错误:

'#1242 - Subquery returns more than 1 row'

你能告诉我获取当月未付款的所有学生的正确查询是什么吗?

最佳答案

使用不在,请尝试以下查询:

SELECT s.*
FROM students s
WHERE s.id NOT IN ( SELECT sf.studentid FROM studentfees sf WHERE month(sf.created) = EXTRACT(month FROM (NOW())) )

关于mysql - 需要获取所有当月未付款的学生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693477/

相关文章:

MySQL:当 FK 启用删除级联时,截断 `myTable` 时出错

mysql - 将 arduino 引脚号打印到 MySQL

php - 从 DB2 数据库填充 MySQL 数据库

mysql - 从具有公共(public)字段的多个表中转储数据

mysql - MySQL 中的解耦表能提高多少性能?

php - MySQL 连接 + 子查询

php - 具有相应输入值的复选框数组

php - 通过php连接到mysql的最佳方法

mysql - 是否存在支持单个字符串中的多个语句的 Go Mysql 驱动程序?

php - MYSQLi Select 语句 - 不起作用