mysql中的double insert-select语句

时间:2014-07-11 23:13:14

标签: mysql sql

我需要将数据从一个表移动到两个表中。

例如

我有TableAA,B,C,D,E个字段(这是旧表),TableXTableYTableX包含ABC字段,TableY包含DE

目前我有一个查询将数据插入第一个表而不是第二个表,例如

INSERT INTO TableX
(A,B,C)
SELECT A,B,C 
FROM TableA

这有效

3个表格包含其ID,并且在新结构TableY中必须包含TableX的引用,表格的完整字段将

表格的完整字段

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `id_toX` int(10) not NULL,
  `D` varchar(45) DEFAULT NULL,
  `E` varchar(45) DEFAULT NULL,

如何在TableX

的同一记录的TableY中插入TableA的引用

2 个答案:

答案 0 :(得分:1)

更改TableA以包含可以插入到两个新表中的唯一ID。使用此列可以创建您希望的任何引用,如果不再需要另一个ALTER TABLE,则删除此列。

答案 1 :(得分:0)

尝试:

INSERT INTO TableY (id_toX, D, E)
SELECT DISTINCT t2.id, t1.D, t1.E
FROM TableA as t1
inner join
TableX as t2
on (t1.A=t2.A and t1.B=t2.B and t1.C=t2.C)