2012-09-25 52 views
0

我有一個名爲'Customers'的表的數據庫,它包含客戶的電話號碼。它絕對不止一行。MySQL:使用單個SQL命令將多行從數據庫A插入數據庫B

另一方面,我也有一個名爲'SMS'的數據庫,裏面有一個表,叫'發件箱'。

爲了顯示從「客戶」表,我用這個SQL查詢中的所有電話號碼:

SELECT Customers.PhoneNumber FROM Customers WHERE PurchaseDate BETWEEN 2012-01-01 AND 2012-01-31; 

現在,我需要的電話號碼(多行),一次被插入到「發件箱」 。每個電話號碼將收到相同的消息。所以,基本上我只需要知道如何使用這個INSERT查詢多行:

INSERT INTO Outbox (PhoneNumber, Message) VALUES (*Multiple PhoneNumbers Here*, 'Same Message To All Customers'); 

任何想法,該怎麼辦呢?以前感謝。

回答

4

我想,你希望每個電話號碼單獨一行。您可以通過INSERT與SELECT結合做到這一點:

INSERT INTO db2.Outbox (PhoneNumber, Message) 
    SELECT Customers.PhoneNumber, 'Same Message To All Customers' as message 
    FROM db1.Customers 
    WHERE PurchaseDate BETWEEN 2012-01-01 AND 2012-01-31; 
+2

幾秒打我:/ –

0
INSERT INTO Outbox (PhoneNumber, Message) 
SELECT Customers.PhoneNumber, 'Same Message To All Customers' as Message 
FROM Customers 
WHERE PurchaseDate BETWEEN 2012-01-01 AND 2012-01-31; 

應該做你

0
INSERT INTO dbX.table_a 
    SELECT ... 
     FROM dbY.table_b 
     WHERE ... 

你不指定在插入任何東西的價值列表,如果你確保選擇列列表匹配dbX.table_a完全。

相關問題