我有两个表TEACHERS
和ABSENCES
他们都有列unitid
所以如果unitid
表TEACHERS
为1
我想要在1
表格中将该号码unitid
插入ABSENCES
:
我认为查询应该看起来像这样
<!-- 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语句或其他东西
编辑:
我只想在缺席的情况下将教师的unitid值分配给unitid。
这个想法是这样的:单位ID 1(意思是老师教数学)所以当我把unitid 1放到缺席时意味着学生缺少数学。
已存在的查询是:
mysql_query(&#34;插入缺席(student_id,日期)值(&#39;&#34;。$ _ GET [&#39; student_id&#39;]。&#34;&#39;, &#39;&#34;。日期(&#39; Ymd H:我:s&#39;)。&#34;&#39;)&#34;);
更具体的表格是:
SUBJECTS ABSENCES TEACHERS
unitid absence_id username
unitname student_id password
date unitid
unitid
答案 0 :(得分:0)
你问这个问题的方式是:
INSERT INTO ABSENCES (unitid) VALUES (1);
如果unitid为1,则插入1,没有主键支持它就没有意义。
如果unitid是1并且您想要插入教师ID,那么它会更有意义,但是您似乎仍然不需要ABSENCES表,除非您尝试插入具有相同教师ID的多个行。在这种情况下,您需要一个带有第二个字段的复合键,例如日期。
INSERT INTO ABSENSES (teacher_id, date)
SELECT teacher_id, CURDATE() FROM teachers WHERE unitid = 1
在这种情况下,teacher_id和date都应该是主键。
答案 1 :(得分:0)
我认为'unitid'是'Teachers'表中的主键,是'Absences'表中的外键。
使用'mysql_insert_id()'从'Teachers'表中获取最后插入的id并使用相同的内容插入'Abscences'表中以下是片段 -
mysql_query("INSERT INTO TEACHERS (...) values (...)");
$unitid = mysql_insert_id();
然后使用上面的$ unitid插入'Abscences'表中,如下所示 -
mysql_query("INSERT INTO ABSCENCES (unitid,other_cols) values ('$unitid',other_values)");