MySQL - 在不同的表中多次插入

时间:2014-03-26 09:32:01

标签: mysql insert

我有3个表:T1,T2和T3

我的目标是从T1到T2插入一些行,并为每个插入的行创建一个新条目,在表T3中使用在表T2中自动生成的新插入ID。

示例:

T1有

id   name   email
1    n1    e1@a.com

并将在T2中复制

id   name   email
5    n1    e1@a.com

所以我的目标是在T3中插入

id  T2.id
1   5

以这种方式插入:

INSERT INTO T2 (name, email)
SELECT name, email
FROM T1
WHERE NOT EXISTS(
    SELECT * 
             FROM T2 
             WHERE T1.email=T2.email
             )

1 个答案:

答案 0 :(得分:0)

如果通过电子邮件约束进行插入,那么我认为以下查询更接近您的解决方案。

Insert into T3 (T1_id,T2_id)
( 
  Select T1.id, T2.id from T1 LEFT JOIN T2 on T1.email = T2.email 
  WHERE NOT EXISTS 
     (select * from T3 where T1.id = T3.T1_id or T2.id  = T3.T2_id)
 )