sqlite加入VS.选择

时间:2014-08-14 07:25:09

标签: sql sqlite join

我在使用sqlite3加入记录时遇到了一些麻烦。我有两个表:tableA和tableB。 tableA有列col1和col2,而tableB有col3和col4。我想根据col2和col3中的信息将col4加入tableA。所以我在tableA中添加了另一列col 5,并尝试了:

UPDATE tableA
SET col5 = 
(SELECT col4 from tableB
WHERE tableA.col2 = tableB.col3);

我的tableA大约有300,000行,而tableB超过一百万行,这需要很长时间才能运行。
我知道有一种方法可以使用JOIN子句来做同样的事情。所以我的问题是:
这有关系吗?如果我使用JOIN,它会跑得更快吗? 2.你是如何使用联接做到的? 3.还有其他方法可以改善表现吗? 非常感谢!

1 个答案:

答案 0 :(得分:1)

SQLite不支持UPDATE语句中的连接(仅在子查询中,但这在这里没有意义)。

即使支持联接,它们也会以与查询相同的方式(并具有相同的性能)实现。

要加快此查询速度,tableB行的col3行的查找需要变得更快。 为此,请在col3列上创建索引。