我有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
)
答案 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)
)