2015-12-22 93 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,所以我不知道如何將它翻譯成該格式。

相關問題