sqlite:在公共键上合并两个表

0 投票
1 回答
1635 浏览
提问于 2025-04-16 20:53

我有一个简单的sqlite查询,但运行得非常慢,我也不知道为什么。我有两个表,表A和表B,它们的主键是一样的,但列不一样。我想创建一个新表C,这个表要包含主键,以及表A和表B的所有列。我是通过一个Python的连接游标cs来运行这个查询的。

   cs.execute('create table tableC as select a.*, b.*
   from tableA a left join tableB b
   on a.rid = b.id')

因为这两个表的行数是一样的,所以用左连接是可以的。为了避免写出其中一个表的所有列名,我允许id列重复。

每个表都有50,000行和大约200列。

有没有更好的方法来做到这一点呢?

1 个回答

0

你可以创建一个视图,这个视图就像是两个表的实时快照,但看起来像是一个新表。不过,它的速度和直接查询这两个表是一样的,并不会更快。

如果你需要一次性转换(或者在需要时更新,可能还可以通过触发器来实现),你可以看看这个回答

撰写回答