在mysql中插入select语句的帮助下,将数据从非规范化表中插入规范化表中

时间:2014-11-24 06:10:50

标签: mysql database mysql-workbench

我正在尝试从非规范化表中取出数据并将其插入到规范化表中。

我有四个规范化的表格 表1:学生(sid int)

表2:维度(dim_id int,dim_name varchar(255))

表3:homeworks(hw_id int,hw_name varchar(255))

表4:peer_evaluation(id int,evaluateator_id外键引用学生(sid),evaluate_id外键引用学生(sid),dim_id外键引用维度(dim_id),hw_id外键引用homeworks(hw_id),rating int)< / p>

一个非规范化表:

Junk(evaluateator_id int,assess_id int,dim1 int,dim2 int,dim3 int,dim4 int,dim5 int,dim6 int,hw_name varchar(255))并且它具有以下数据

junk table

dim1,dim2,dim3,dim4,dim5,dim6中的值是评估者给予其他学生各自维度的评分。

我从垃圾表中获取了数据,在前3个表中插入了数据,但现在我想从垃圾表和其他3个表中取出数据并插入到我的table4中。

我尝试过以下查询,但我也希望从垃圾表中插入dim_id(6 id&#39; s)和评级,并将其一次插入peer_evaluation表。任何人都可以帮我解决这个问题并告诉我如何修改我的查询以使其工作。

insert into peer_evaluation(evaluator_id, evaluated_id, hw_name)
select evaluator_id, evaluated_id, hw_name 
from students s, dimensions d, homeworks h, junk j 
where j.evaluator_id=s.sid and j.evaluated_id=s.sid and h.hw_name = j.hw_name;

0 个答案:

没有答案
相关问题