Hi,

I have 2 tables:

A: _ID autoinc primary key
   name text
   b integer foreign key  to table B

B: _ID autoinc primary key
   name text

In sql: 
CREATE TABLE "A" ("_ID" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , "name" 
TEXT, "b" INTEGER NOT NULL  DEFAULT '0')
CREATE TABLE "B" ("_ID" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , "name" 
TEXT)

I would like to select A records with regards to some criteria, and then B 
records matching the A records.
I do not want to make a left join query because, 
First, in a concrete example, I may have several relations and this may lead to 
a very complex query.
And secondly, the code that reads the result is generated and extracting 
records from a single result may be very difficult to implement (I don't event 
want to know if it's feasible).

My first idea was to perform:
1) SELECT * FROM A WHERE name LIKE 'foo*'
2) SELECT * FROM B WHERE _ID IN (SELECT _ID FROM A WHERE name LIKE 'foo*')

So my question is:
What is the most efficient to perform such queries ?
Is there any kind of cache that could avoid re-performing the query on A 
records ?
Is that the purpose of views ?

Many thanks,
Thomas

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to