我希望能够通过触发器将来自两个表的数据插入内部连接到第三个表,我的插入查询如下:
INSERT INTO reg04_rpt_animreg
(animalid
,tagid
,tagprefix
,tagsec
,name
,color
,sex
,inadggbundle
,hh_id
,regdate) VALUES
(NEW.animalid
,NEW.tagid
,NEW.tagprefix
,NEW.tagsec
,NEW.name
,NEW.color
,NEW.sex
,1
,NEW.farmermobile
,now()
);
但是我需要对两个表进行内部联接以获取NEW.farmermobile
的值,是否可以使用insert语句在内部联接中进行操作?
答案 0 :(得分:1)
您可以从SELECT
查询而不是文字VALUES
列表中获取要插入的值。
INSERT INTO reg04_rpt_animreg (animalid, tagid, tagprefix,tagsec,name,color,sex,inadggbundle,hh_id,regdate)
SELECT NEW.animalid, new.tagid, ,NEW.tagprefix,NEW.tagsec,NEW.name,NEW.color,NEW.sex,1,
t1.column, now()
FROM someTable AS t1
JOIN someOtherTable AS t2 ON t1.something = t2.somethingelse
答案 1 :(得分:0)
我认为这是一种不好的做法,因为这意味着您的数据重复。
最好只是将数据插入两个表中,然后在需要将数据合并时,使用带有SELECT
的{{1}}查询将2个表中的数据放入1个结果表中
您还可以定义一个为您执行此操作的VIEW。但是,请勿重复您的数据。这使事情变得复杂。