我试图在一个列上联接两个表,然后用查询结果填充一个新表。
我知道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")
答案 0 :(得分:1)
sql部分是:
CREATE TABLE new_table AS
SELECT expressions
FROM existing_tables
[WHERE conditions];