> Try   ON (EA.ENTRY_ID = +E.ENTRY_ID)

Yes, that works indeed nicely.
Thanks for that.
I keep forgetting these non-standard SQL tricks.

RBS


On Tue, Jul 12, 2011 at 9:28 PM, Igor Tandetnik <itandet...@mvps.org> wrote:
> On 7/12/2011 3:39 PM, Bart Smissaert wrote:
>> Joining a large table (ENTRY_ATTRIBUTES) and a small table
>> (BPNewENTRY) and putting the resulting records
>> in a third table, BP3. Large table may have a few million records and
>> small table a few hundred records.
>> The join field is called ENTRY_ID in both tables and this has a
>> non-unique index in the large table and is the integer primary key
>> in the small table. Data type is integer in both these fields.
>>
>> This is the SQL:
>>
>> INSERT OR REPLACE INTO BP3
>> (ENTRY_ID, NUMERIC_VALUE, UNIT)
>> SELECT EA.ENTRY_ID, EA.NUMERIC_VALUE, EA.TYPE_SPECIFIC_INFO
>> FROM
>> ENTRY_ATTRIBUTES EA INNER JOIN BPNewENTRY E ON
>> (EA.ENTRY_ID = E.ENTRY_ID)
>
> Try   ON (EA.ENTRY_ID = +E.ENTRY_ID) . The unary plus should suppress
> the index on BPNewENTRY, and force SQLite to turn the execution around:
> scan BPNewENTRY and look up in ENTRY_ATTRIBUTES using index.
> --
> Igor Tandetnik
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to