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 从包含表名、列名和值列映射的数据表中将数据插入到多个表中,可以在源中更改
解析 JSON 数据并插入到 SQL Server 中的多个表中
使用单个过程将多个 xml 数据动态插入到 sql server 表中