我有一个名为student
的表格,它包含以下字段:
idno(primary), lastname, status, password, syearid(foreign)
我的问题是我必须在每个学校(syearid)存储未投票的学生:
我有一张桌子可以存储已经投票的学生。我该如何跟踪未投票的学生?我应该另一张桌子吗?我的一个问题是,当学生在school_year(2015)或syearid(2000)注册并投票时,它将创建一个学生投票记录,当学生再次投票给下一个school_year时,它将在学生投票表中创建另一个记录,但我的问题如果学生一生中只能注册一次,那么如何存储一个未投票的学生(主要是我的idno,因此学生不能再重新注册,但学生在学校注册时的年龄相同)。我该怎么办?
答案 0 :(得分:0)
您不应该明确存储在某一年内没有投票的学生的记录。您可以简单地将学生加入投票表并检查是否为空。没有投票记录的学生将不会投票。我假设学生投票表中的syearid
是投票年,而学生表中的syearid
是学生开始上学的那一年。
SELECT s.* FROM student s
LEFT JOIN student_votes sv ON (s.idno = sv.idno AND sv.syearid = 2015)
WHERE sv.syearid IS NULL
此外,假设只有特定年份的学生才有资格投票
SELECT s.* FROM student s
LEFT JOIN student_votes sv ON (s.idno = sv.idno AND sv.syearid = 2015)
WHERE sv.syearid IS NULL
AND s.syearid IN (2012, 2013, 2014, 2015)