0

我有一个名为“客户”的表的数据库,其中包含客户的电话号码。它绝对不止一排。

另一方面,我还有一个名为“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

3 回答 3

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;
于 2012-09-25T14:37:53.177 回答
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; 

你应该做

于 2012-09-25T14:37:12.223 回答
0
INSERT INTO dbX.table_a
    SELECT ...
        FROM dbY.table_b
        WHERE ...

如果确保选择的列列表与 dbX.table_a 完全匹配,则不必在插入的值列表中指定任何内容

于 2012-09-25T14:40:24.437 回答