我有两个表TEACHERS和ABSENCES,它们都有列unitid,所以如果TEACHERS表上的unitid是1,我想在ABSENCES表中将1插入到unitid中:
我认为查询应该如下所示
<!-- language: lang-sql -->
INSERT INTO ABSENCES (unitid)
select unitid
from TEACHERS
where unitid = teachers id here(please advise what i should put here)此外,我的应用程序是在PHP上的,所以也许我可以使用if语句或什么的
编辑:
我只想把教师中的单位分配给缺勤的单位。
这个想法是这样的:单元id 1(意思是老师教数学),所以当我把unitid 1放到缺课时,意味着学生在数学中缺席。
已经存在的查询如下:
Mysql_query(“插入缺勤(student_id,日期)值”(‘.$_GET’学生_id‘.’‘,’.date‘(’Y:I:S‘).’‘);
我希望它能更具体地增加它从老师那里获得的统一性。
更具体地说,表格是:
SUBJECTS ABSENCES TEACHERS unitid absence_id username unitname student_id password date unitid unitid
发布于 2014-06-08 16:30:14
你问这个问题的方式就是:
INSERT INTO ABSENCES (unitid) VALUES (1);如果unitid为1,则插入1,没有支持它的主键是没有意义的。
如果unitid为1,并且您想插入教师id,这将更有意义,但除非您试图使用同一个教师id插入多行,否则似乎不需要缺勤表。在这种情况下,您需要一个带有第二个字段的复合键,例如日期。
INSERT INTO ABSENSES (teacher_id, date)
SELECT teacher_id, CURDATE() FROM teachers WHERE unitid = 1在这种情况下,teacher_id和date都应该是主键。
发布于 2014-06-08 16:35:21
我假设'unitid‘是’教师‘表中的主键,在’缺席‘表中是外键。
使用“mysql_insert_id()”从“教师”表中获取最后插入的id,并使用该id插入“脓肿”表,下面是片段-
mysql_query("INSERT INTO TEACHERS (...) values (...)");
$unitid = mysql_insert_id();然后使用上面的$unitid插入“脓肿”表如下-
mysql_query("INSERT INTO ABSCENCES (unitid,other_cols) values ('$unitid',other_values)");https://stackoverflow.com/questions/24108089
复制相似问题