2015-12-22 96 views
1

我需要在转换后用MDB表中的数据填充表ABC,这意味着MDB中的每一行都会在ABC表中创建一个条目。我写了一个Mysql查询格式 -如何从多个选择插入日期到另一个表?

Insert into ABC (a,b,c) select some_operation(d, <ext_value>) as a, e as b, f as c; 

这个sql查询会将MDB数据的复制/修改副本插入到ABC中。接下来我需要的是更改我的操作中使用的ext_value,并且需要运行多个选择。 我试过这种方式,但不是succeceeded -

Insert into ABC (a,b,c) (select some_operation(d, <ext_value>) as a, e as b, f as c), (select some_operation(d, <ext_value>) as a, e as b, f as c); 

我到底期待,如果有2选择ABC表将有双倍的没有行的MDB,每两排为MDB每一行。

如何在单个Mysql往返中执行此操作,否则应该使N个查询运行第一个查询N次?

如果可能的话,如果有人解释会很好如何在Magento的单个查询中实现多重选择插入。

+2

http://dev.mysql.com/doc/refman/5.7/en/union.html - 不知道关于magento,虽然 – rjdown

+0

在上面的链接根据数据中断'UNION'或者'Union all'的情况下set是我们认为您正在寻找的关键字,以避免往返。 – xQbert

+0

是的,我正在寻找避免rountrips。谢谢 – ted

回答

1

您可以使用返回所有ext_value值的UNION子查询,并将其与您的表加入以获取所有组合。

INSERT INTO ABC (a, b, c) 
SELECT some_operation(d, ext_value) AS a, e AS b, f AS c 
FROM MDB_data 
CROSS JOIN (SELECT <ext_value1> AS ext_value 
      UNION 
      SELECT <ext_value2> AS ext_value) AS x 

我不知道Magento,所以我不知道如何将它翻译成该格式。

相关问题