2011-04-10 79 views
0

我需要将数据插入到新表中,该表中的字段是从两个现有表(如Table1和Table2)构建的,如下所示。路径1和路径2来自表2,但引用存储在表1中。 Table1不应该改变,因为Table2的路径字段将被改变。从第一个表中的多个列替换第二个表中的多个列创建新表

New Table 
id path1 path2 
1 /a/b /a/c 
2 /a/d /a/e 


Table1 
id path1_id path2_id 
1 1  2 
2 3  4 


Table2 
id path 
1 /a/b 
2 /a/c 
3 /a/d 
4 /a/e 
+0

我做搜索一个(可信或强制)外键约束但找不到我需要的东西。而且,忘了提及,我需要mysql的查询,谢谢。 – babyromeo 2011-04-10 16:55:31

+0

请提供每个表的创建声明。 – Khez 2011-04-10 16:57:56

回答

0

你没有给我们带来多大一起工作,所以这里是一个尝试只是为了让铃滚动:

insert 
    into new_table(id, path1, path2) 
select t1.id 
     ,p1.path 
     ,p2.path 
    from table1 t1 
    join table2 p1 on(p1.id = t1.path1_id) 
    join table2 p2 on(p2.id = t1.path2_id) 

......根据有关数据如下假设:

  • table1.id是一个独特的密钥
  • table2.id是唯一键
  • new_table.id“继承”从表1的关键
  • 没有从table1.path1_id => table2.id
  • 一个(可信或强制)外键约束有一个从table1.path2_id => table2.id
+0

谢谢。我相信这对专家来说只是一块蛋糕。 – babyromeo 2011-04-11 04:55:30

相关问题