1. 程式人生 > 其它 >查詢多表的資訊,放到一個表中(使用觸發器)

查詢多表的資訊,放到一個表中(使用觸發器)

使用觸發器(給要查詢的表新增觸發器)

假如有表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