我有一个名为 student
的表,它有以下字段:
idno(primary), lastname, status, password, syearid(foreign)
我的问题是我必须在每个 school_year(syearid) 中存储未投票的学生:
我有一张表存储已经投票的学生。我应该如何跟踪未投票的学生?我应该再做一张 table 吗?我的一个问题是当学生在 school_year (2015) 或 syearid (2000) 注册并投票时,它会创建一个学生投票记录,当学生再次投票给下一个 school_year 时,它会在学生投票表中创建另一个记录,但我的问题如果学生一生只能注册一次,则如何存储未投票的学生(主要是我的 idno,因此学生不能再注册,但学生的学年与她/他注册时相同)。我该怎么办?
最佳答案
您不需要明确存储在给定年份没有投票的学生的记录。您只需将学生加入投票表并检查是否为空。没有给定年份的投票记录的学生将不会投票。我假设学生投票表中的 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)
关于mysql - 我应该创建一个表来跟踪 "missing"记录的实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34645951/