2013-02-04 27 views
0

我知道这个问题已经回答过,但我很抱歉我不是一个编码器,所以我不知道在哪里。插入表名到另一个表的列

我有一个100 +测验的列表,所有这些都在单独的表(ID,问题,答案)。现在,我想要做的就是将所有表的名称插入到名为“测验”的表的列(测验名)中,这是所有测验的主索引。

接下来,我还想从每个表格插入问题和答案到包含所有问题和答案(结构:id,quizid,问题,答案)的主表中。

我想开发一个测验网站,但我必须自己做所有事情。这是一个漫长的故事。如果我能从Stack Overflow社区获得一些帮助,那就太好了。

我知道我是一个noobie,所以会有经验丰富的编码员出现snark,scold等等,但我只需要完成这件事!

感谢

+2

任何代码将是有益的,但看起来像你需要使用JOIN在MySQL中从2个表加入类似的特性 –

回答

1

您可以使用命令

SHOW TABLES; 

或者获取当前数据库中的表名的列表,你可以查询information_schema表,例如:

SELECT table_name FROM information_schema WHERE table_schema = 'your-database-name'; 

要使用表名创建表,请使用类似下面的查询:

CREATE TABLE quiz AS SELECT table_name AS quizname FROM information_schema.tables WHERE table_schema = 'test'; 

然而,有趣的是,这将包括新创建的表“问答” ......

我不能想办法做纯粹的MySQL中的最后一部分,你将不得不写一个PHP脚本读取quiz表,然后进行这样的大量的查询:

INSERT INTO master_table(quizid, question, answer) SELECT 'quiz1', question, answer FROM quiz1 
INSERT INTO master_table(quizid, question, answer) SELECT 'quiz2', question, answer FROM quiz2 
... 
+0

非常感谢,雅各布。我会试试看。让我们来看看! – user1589406

+0

我尝试使用“创建表测验...”,但表名没有被插入到新表中。 – user1589406