给出两个表:
`Students`
id int, primary, auto-increment
sid int
fname varchar
lname varchar
`Registration`
id int, primary, auto-increment
student_sid int
coursenum int
有没有办法在Students
中使用他们注册的每个类的coursenum填充新列?因此,每次为给定的sid添加第二个coursenum时,students.id将自动递增,保留主键,而带有sid,fname,lname和new coursenum的新行将添加到表中。
它有点像INSERT的倒退版本......如果重复更新。我想要UPDATE ...如果DUPLICATE INSERT。
答案 0 :(得分:1)
也许你可以这样做(见下面的注释):
$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}'");
}
这里有几点说明:
id
表中的原始Students
列。它将获取名字和姓氏,然后删除学生,并为Registration
表中的每个条目插入一个新行。它会保留sid
,fname
和lname
,并会填充新列coursenum
。Students
表格以包含coursenum
列。希望这可以帮到你。