这里有 SQL 难题。
我想使用 phpMyAdmin 根据现有表中的数据填充一个空表。
更具体地说,我想使用mark
中的数据来创建attempt
中的数据。标记中的列是学生编号、测试编号、尝试编号、问题编号和答案。它是一个多项选择题测试分析工具。
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=1
值,并对句点值进行硬编码(然后对每个 anum
重复)。
谢谢。
最佳答案
使用“INSERT INTO SELECT”语法:
INSERT INTO 'attempt'(snum,tnum,anum,period) SELECT DISTINCT snum,tnum,anum,CONCAT('2013-',anum) as period FROM mark;
关于MySQL:使用 phpMyAdmin 使用一个表中的数据填充第二个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21494020/