查詢多表的資訊,放到一個表中(使用觸發器)
使用觸發器(給要查詢的表新增觸發器)
假如有表single、mcq、judge
要把這三個表的資料查詢出來並放到一個新表中
新表:lists
步驟1:建立一個新表,並在新表中插入欄位,如下:
步驟2 :給single、mcq、judge幾個表分別新增觸發器(新增觸發器的作用:在single、mcq、judge中新增資料時,也會在新表lists中同時新增資料)
解釋:after:在single插入資料之後,再在新表lists中新增資料
insert into (id)values (NEW.id)中
id為要在新表中新增的欄位名(single表中的id)
NEW.id:新生成的id
注意:這兩個id都要與要查詢的表(例如:single)中的id名稱對應
步驟3:查詢語句為
select lists.id,single.`subject`,single.questionType,single.question ,single.score,single.difficulty,single.createtime
from lists
INNER JOIN
single
on single.id=lists.sid
UNION
select lists.id,mcq.`subject`,mcq.questionType,mcq.question ,mcq.score,mcq.difficulty,mcq.createtime
from lists
INNER JOIN
mcq
on mcq.id=lists.mid
union
select lists.id,judge.`subject`,judge.questionType,judge.question ,judge.score,judge.difficulty,judge.createtime
from lists
INNER JOIN
judge
on judge.jid=lists.jid
ORDER by id desc