读取列的值并分配给另一列

时间:2014-06-07 13:06:47

标签: mysql sql

我的情况是这样的:

我有两张桌子 教师吸引力每个人都有一列 unitid

我想从教师表中选择 unitid 并插入 ABSENCES 表。

编辑:

这可以添加到此查询中:(“插入缺席(student_id,日期)值('”。$ _ GET ['student_id']。“','”。date('Ymd H:i:s' ) “')”);

2 个答案:

答案 0 :(得分:0)

试试这个

INSERT INTO ABSENCES(unitid) select unitid from TEACHERS

答案 1 :(得分:0)

我试图将您的方案描述如下

创建Absence

create table absence (absence_id int not null auto_increment primary key,
 `date` datetime, `subject` varchar(20),
 unit_session varchar(20), unitid int);

将数据插入Absence

insert into absence(`date`, `subject`, unit_session)
values(now(),'Math','first'),(now(),'Biology','second'),(now(),'Physics','third')

创建数据并将数据插入Teachers

create table teachers (username varchar(10), `password` varchar(10), unitid int);

insert into teachers values('abcdsed','fgdfgfdfgd',23),
('abcdced','fgdfgrtfgd',3),('harikas','fgdfgfdfgd',23);

此时如您所见,Absence表没有unitid列的任何值。它是NULL

创建一个临时表,如下所示

create temporary table  temptest(id int not null auto_increment primary key,
unit_id int);

unitid插入Teachers到临时表

insert into temptest(unit_id) select unitid from teachers 

现在最后,通过加入临时表来更新Absence表,如下所示

UPDATE absence a 
    JOIN temptest b 
  ON a.absence_id = b.id 
SET a.unitid = b.unit_id