在sqlite中从一个表中查找数据写到另一个表中。

就是如何用图中work表中的id字段在data表(data中有三万多行数据)中找到对应的id把对应的a中的内容写入到work中的a中,补充完整个work

图片说明

可以把结果直接存在数据库中,也可以保存到各类文件中,最后只需要d、id和对应的a即可

我自己试过Python,但由于技术太差没能成功,对方法和语言没有要求,谢谢大家

补充一下,结果一定要按原来的顺序排,不能按id顺序排

insert into work select 1 as d, id, a from data where id in (select id from work)
INSERT INTO `work` (id, a)
  SELECT id, a FROM `data`
ON DUPLICATE KEY UPDATE `work`.a = `data`.a;

备注:d 要有原始值, 此代码是源自MySQL代码,不知可有相容性。

update table1
set num1 = t2.num2
FROM table1 t1 INNER JOIN table2 t2
ON t1.id=t2.pid;

问题已经解决,自己来填下坑,欢迎大家补充方法

xxx.py文件↓

import configparser
import sqlite3
import os
read_file = configparser.ConfigParser()
read_file.read("Sqlite.cfg")
file_dir = read_file.get("Sqlite", "filedir")
work_db = sqlite3.connect(file_dir)
cursor = work_db.cursor()
cursor.execute("select * from data;")
test = cursor.fetchall()
for i in test:
    dataogn = list(i)
    data_id = str(dataogn[0])
    data_a = str(dataogn[1])
    try:
        comman = "UPDATE work SET a= \"" + data_a + "\" WHERE id = " + data_id + ";"
        cursor.execute(comman)
        print("success")
    except:
        #exit()
        print(data_id+"failed")
cursor.close()
work_db.commit()
work_db.close()

Sqlite.cfg文件↓

[Sqlite]
filedir = 数据库地址

先pip安装configparser,修改并保存Sqlite.cfg和py文件在同一目录运行