MySQL Query更新多个表

时间:2016-10-10 12:46:31

标签: php mysql

我有一个测验模块,其中有两个表quiz_questionquiz_optionsquiz_question正在保存问题 和quiz_option保存特定问题的选项。

  

quiz_option的表格结构:   id | question_id |文字| is_correct

     

quiz_question的表格结构   id |标题| desctiption |

其中question_id是id quiz_question

的外键

我想编写一个查询来更新quiz_question,所有相应的quiz_options都是一个查询。

enter image description here

4 个答案:

答案 0 :(得分:0)

多表更新你可以使用外键连接两个或多个表用外键概念更新父表主键到子表外键见链接 http://www.hostingadvice.com/how-to/mysql-foreign-key-example/

table quiz_question PK (question_id)
table quiz_option FK (question_id)

答案 1 :(得分:0)

获取问题的ID并逐个更新,因为您无法使用单个查询更新两个表。

$ID_VALUE = mysqli_real_escape_string($conn, $_GET['id']);
UPDATE quiz_option SET fields_name = 'value' WHERE question_id = $ID_VALUE;
UPDATE quiz_question SET fields_name = 'value' WHERE id = $ID_VALUE;

答案 2 :(得分:0)

以下是查询:

INSERT INTO quiz_question(title,description) VALUES ('test','test question'); 
INSERT INTO quiz_option(question_id,text,is_correct) VALUES (LAST_INSERT_ID(),'test','0'),(LAST_INSERT_ID(),'test2','0'),(LAST_INSERT_ID(),'test3','0'),(LAST_INSERT_ID(),'test4','1')

答案 3 :(得分:-1)

试试这个

UPDATE  table1 a
        INNER JOIN table2 b
            ON a.ID = b.ID
SET     a.value = b.value