我有两张 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/