0

顧客の電話番号を含む「顧客」という名前のテーブルを持つデータベースがあります。その間違いなく複数の行。

一方、「送信ボックス」と呼ばれるテーブルを含む「SMS」という名前のデータベースもあります。

「Customers」テーブルからすべての電話番号を表示するために、次の 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 に答える