MySQL:使用phpMyAdmin使用一个表中的数据填充第二个表

时间:2014-02-01 04:18:58

标签: mysql sql sql-insert

这里的SQL难题。

我想使用phpMyAdmin根据现有表中的数据填充空表。

更具体地说,我想使用mark中的数据在attempt中创建数据。标记中的列是student_number,test_number,attempt_number,question_number和答案。它是一种多选测试分析工具。

mark (existing)
snum     tnum    anum    qnum    answer
----------------------------------------
1        1        1        1       A
1        1        1        2       C
1        1        1        3       D
1        1        2        1       B    
1        1        2        2       A
1        1        2        3       C


attempt (to be created)
snum     tnum    anum    period
--------------------------------
1        1        1        2013-1      
1        1        2        2013-2         

我可以得到明显的snum,tnum,anum组合如下:

SELECT DISTINCT snum, tnum, anum FROM `mark`

如何使用此调用的结果填充必需的插入调用?

INSERT INTO `attempt` (snum,tnum,anum,period) VALUES (:s,:t,:a,"2013-1")

理想情况下,我想根据“2013-”加上anum自动完成期间值。我怀疑这是不可能的,所以我只选择所有anum=1值,然后硬编码周期值(然后重复每个anum)。

感谢。

2 个答案:

答案 0 :(得分:2)

使用“INSERT INTO SELECT”语法:

INSERT INTO 'attempt'(snum,tnum,anum,period) SELECT DISTINCT snum,tnum,anum,CONCAT('2013-',anum) as period FROM mark;

答案 1 :(得分:1)

INSERT INTO `attempt`
            (snum,
             tnum,
             anum,
             period)
select DISTINCT
  snum,
  tnum,
  anum,
  concat('2013-',anum) as period
from mark;