2017-02-24 73 views
1

我有一个表称为插入MySQL的列记录到第二个表具有不同的列名

为了

| id | created | customer_id | ... | ... | 

我想与记录移动创建的列和CUSTOMER_ID等第二表称为

order_meta

| id | order_id | meta | value | 

使元是“创造”和值从订单的表

创造价值这是可以做到用MySQL查询或者我需要为此创造一个脚本?

+0

你想副本创建,CUSTOMER_ID从订单表order_meta? – Sateesh

回答

1

这是你想要的吗?

insert into order_meta (order_id, meta, value) 
    insert id, 'created', created 
    from orders; 

如果你想要更多的非规范化列,你可以这样做:

insert into order_meta (order_id, meta, value) 
    insert id, m.meta, 
      (case meta when 'created' then created 
         when 'customer_id' then customer_id 
      end) 
    from orders o cross join 
     (select 'created' as meta union all 
      select 'customer_id' as meta 
     ) m 
+0

有点儿,但有了这个,你需要把它与所有的记录。我想知道是否有办法在一个查询中执行此操作。 – Hene

+0

最后一个就是我想要的。谢谢! – Hene

0
INSERT INTO order_meta (order_id, meta, value) 

SELECT id, 'created', created 

FROM order 
相关问题