【发布时间】:2019-06-19 23:57:45
【问题描述】:
我正在尝试在一个列上连接两个表,然后用查询结果填充一个新表。
我知道 join 命令为我提供了我想要的表数据,但现在我如何将这些数据插入新表而不必循环遍历结果,因为有许多唯一的列名。有没有办法用 SQLite 命令做到这一点?在没有 SQLite 命令的情况下执行此操作将需要嵌套的 for 循环,并且计算成本会很高(如果它甚至可以工作的话)。
加入有效的命令:
connection = sqlite3.connect("database1.db")
c = connection.cursor()
c.execute("ATTACH DATABASE 'database1.db' AS db_1")
c.execute("ATTACH DATABASE 'database2.db' AS db_2")
c.execute("SELECT * FROM db_1.Table1Name AS a JOIN db_2.Table2Name AS b WHERE a.Column1 = b.Column2")
尝试加入和插入不出错但不填充表的命令:
c.execute("INSERT INTO 'NewTableName' SELECT * FROM db_1.Table1Name AS a JOIN db_2.Table2Name AS b WHERE a.Column1 = b.Column2")
【问题讨论】:
-
去掉表名两边的单引号?
标签: python python-3.x sqlite