Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用单个SQL命令将多行从数据库A插入数据库B_Mysql - Fatal编程技术网

Mysql 使用单个SQL命令将多行从数据库A插入数据库B

Mysql 使用单个SQL命令将多行从数据库A插入数据库B,mysql,Mysql,我有一个数据库,表名为“Customers”,其中包含客户的电话号码。肯定不止一排 另一方面,我还有一个名为“SMS”的数据库,其中包含一个名为“发件箱”的表 为了显示“客户”表中的所有电话号码,我使用以下SQL查询: SELECT Customers.PhoneNumber FROM Customers WHERE PurchaseDate BETWEEN 2012-01-01 AND 2012-01-31; 现在,我需要将这些电话号码(多行)立即插入“发件箱”。每个电话号码都会收到相同的信

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

另一方面,我还有一个名为“SMS”的数据库,其中包含一个名为“发件箱”的表

为了显示“客户”表中的所有电话号码,我使用以下SQL查询:

SELECT Customers.PhoneNumber FROM Customers WHERE PurchaseDate BETWEEN 2012-01-01 AND 2012-01-31;
现在,我需要将这些电话号码(多行)立即插入“发件箱”。每个电话号码都会收到相同的信息。因此,基本上我只需要知道如何对多行使用此插入查询:

INSERT INTO Outbox (PhoneNumber, Message) VALUES (*Multiple PhoneNumbers Here*, 'Same Message To All Customers');
你应该做什么


我想你应该为每个电话号码单独列一行。可以通过将“插入”与“选择”相结合来执行此操作:

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;

我想您希望每个电话号码都有一行。可以通过将“插入”与“选择”相结合来执行此操作:

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;
如果您确保selects列列表与dbX.table_a完全匹配,则您不必在inserts的值列表中指定任何内容

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

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