2013-06-12 232 views
0

我有2个表格:progressstudentprogress具有字段semesteridStudenthasFirstAttestationhasSecondAttestation。 我需要从progress那些idStudent哪些学生的最长学期和两个认证= 0。 这里是我的查询的例子,但它不工作:从MySQL获取记录

SELECT progress.idStudent FROM monitoring.progress 
WHERE hasFirstAttestation = 0 AND hasSecondAttestation = 0 
AND semester = 
    (SELECT MAX(`semester`) 
     FROM monitoring.progress WHERE progress.idStudent = student.idStudent); 
+1

*** **什么*在您的查询中不起作用? – Kermit

+0

用“IN”取代最后一个“AND” – FredTheWebGuy

+0

删除Max中的''这是MAX(学期)不是MAX('学期') –

回答

2

我想你忘了提及连接表在FROM子句中

SELECT idStudent 
FROM monitoring.progress 
WHERE hasFirstAttestation = 0 AND hasSecondAttestation = 0 
AND semester = (SELECT MAX(semester) FROM monitoring.progress, monitoring.student 
WHERE progress.idStudent = student.idStudent); 
+0

哦,谢谢你,它有效。 – Eugene

+0

很高兴帮助:-) –

0
SELECT progress.idstudent 
FROM monitoring.progress 
WHERE hasfirstattestation = 0 
    AND hassecondattestation = 0 
    AND semester = (SELECT Max(`semester`) 
        FROM monitoring.progress,monitoring.student 
        WHERE progress.idstudent = student.idstudent);