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

标签 mysql sql sql-insert

这里有 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/

相关文章:

mysql - Eloquent updateOrCreate() 覆盖所有行 - 试图理解它

mysql - Tecdoc 数据库查询以显示某个类别的产品

SQL - 两个查询之间的差异

MYSQL从一个表中查询SELECT并将结果与​​另一表连接

php - 如果列中没有数据,则将数据插入到列中

php - 比较两个 texbox 中 mysql 数据库的值,无需提交表单

python - 如何引用另一个表中的外键字段,Django

sql - 需要对平面结果集中的分层数据进行 SQL 查询

sql - 如何使用INSERT INTO + SELECT FROM插入自定义值?

mysql - 我怎样才能在 MySQL 中执行 'insert if not exists'?