我有两个表在结构上相同的,每个大约10K行:SQLite的提高查询效率
db1.people db2.people
*************** ***************
name | number name | number
--------------- ---------------
mike | bob |
john | Kev | 45
mark | mark | 16
*************** ***************
我的目标是找同一个人在两个表中,并从DB2复制数值DB1 。它采取了一些黑客攻击,但我认为我有这样的工作:
UPDATE people SET number = (SELECT number FROM db2.people WHERE number > 0 AND name = main.people.name);
而且,它的工作,但它非常重。我认为它做以下几点:
- 经过在db1.people.names所有10K名
- 发现在db2.people.names同名
- 如果db2.people.number填充它把将值转换为main.people.number
该捕获仅在db2中的10k行中有大约200个。人们用一个数字填充。
这就是我脱离我的联盟;我如何限制上述查询只打扰运行在db2.people.number中具有相应数值的名称?
这应该带给我的10K^10K到200^10K
感谢,
是否有某种方式把一个UPDATE子查询在SELECT语句的WHERE db2.people号> 0?与我目前的声明相反:通过db2.people.number,并且只有在db2.people.number被填充时才查看db1.people.name? – apeg