给定两个表:
`Students`
id int, primary, auto-increment
sid int
fname varchar
lname varchar
`Registration`
id int, primary, auto-increment
student_sid int
coursenum int有没有一种方法可以用他们注册的每个类的课程号填充Students中的新列?因此,每次为给定的sid添加第二个coursenum时,students.id将自动递增,并保留主键,而包含sid、fname、lname和new coursenum的新行将被添加到表中。
这有点像INSERT...IF复制更新的倒退版本。我想要UPDATE...IF复制插入。
发布于 2012-02-28 04:57:30
也许你可以这样做(参见下面的注释):
$result = mysql_query("SELECT DISTINCT student_sid from Registration");
while (list($studentID) = mysql_fetch_row($result))
{
$result2 = mysql_query("SELECT fname, lname FROM Students WHERE sid = '{$studentID}'");
list($fname, $lname) = mysql_fetch_row($result2);
mysql_query("DELETE FROM Students WHERE sid = '{$studentID}'");
mysql_query("INSERT INTO Students (sid, fname, lname, coursenum) SELECT '{$studentID}', '{$fname}', '{$lname}', coursenum FROM Registration WHERE student_sid = '{$studentID}'");
}这里有几点注意事项:
Students表中的原始id列。它将获取名字和姓氏,然后删除学生,并为Registration表中的每个条目插入新行。它将保留sid、fname和lname,并将填充一个新列还假设您已经更改了Students表,以包括关于您在此讨论的学生和课程数量的coursenum column.希望这能对你有所帮助。
https://stackoverflow.com/questions/9471088
复制相似问题