insert语句,两个表之间有一个连接

nfg76nw0  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(371)

我希望能够通过触发器将两个表中的数据插入到第三个表中,我的插入查询如下所示:

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语句在内部联接中执行?

8oomwypt

8oomwypt1#

您可以从 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
xxb16uws

xxb16uws2#

我认为这是一个不好的做法,因为这意味着重复您的数据。最好只将数据插入到两个表中,然后在需要连接数据时,使用 SELECT 使用 INNER JOIN 将两个表中的数据放入一个结果表。
您还可以定义一个视图来为您执行此操作。但是,不要复制数据。它使事情变得复杂。

相关问题