SQL从不同数据库中的多个表中插入数据

Posted

技术标签:

【中文标题】SQL从不同数据库中的多个表中插入数据【英文标题】:SQL Insert data from multiple tables in different database 【发布时间】:2013-05-21 20:40:40 【问题描述】:

我在 a2 数据库中有 cat 表,我想从不同数据库的不同表中插入 id、img 列

INSERT INTO a2.cat (id, img) SELECT id FROM topshop_test.product , 从 topshop_test.product-images 中选择名称;

【问题讨论】:

【参考方案1】:

我认为您需要考虑为此使用JOIN

INSERT INTO a1.cat (id, img)
SELECT p.id, pi.name
FROM topshop_test.product p 
    JOIN topshop_test.product-images pi ON p.id = pi.productid

这假设 product-images 表有一个 productid 字段链接到 product 表。

【讨论】:

p 和 pi 是标准的,或者我可以输入任何字符 @FahmyFarahat——它们只是表别名——比输入表名更容易。所以是的,您可以将它们更改为任何值。 此处不工作错误#1064 - 您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 4 行的“-images pi ON p.id = pi.productid”附近使用正确的语法 @FahmyFarahat -- 您需要将 pi.productid 更改为该表中的任何外键(您没有提供表定义,所以我不得不猜测)。您的产品图像表中应该有一个产品 id 字段——改用它。

以上是关于SQL从不同数据库中的多个表中插入数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL 从包含表名、列名和值列映射的数据表中将数据插入到多个表中,可以在源中更改

如何使用oracle程序将数据从多个表中插入一个表中

解析 JSON 数据并插入到 SQL Server 中的多个表中

使用单个过程将多个 xml 数据动态插入到 sql server 表中

如何防止将重复数据插入到值为多个的 SQL Server 表中

如何从单个控制器将数据插入到 laravel 中的多个表中?