【问题标题】:How to create/populate a SQLITE table from JOIN command?如何从 JOIN 命令创建/填充 SQLITE 表?
【发布时间】: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


【解决方案1】:

sql部分是:

CREATE TABLE new_table AS
  SELECT expressions
  FROM existing_tables
  [WHERE conditions];

【讨论】:

    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多