Hello All,

I have a simple query that seems to be going very very very slow.   I am not
sure why sqlite is behaving this way, which is why I decided to burden you
guys with my question.  My guess is that the query optimizer might not be
able to decipher what exactly I want to do, and thus computes some
inefficient query.

Here is my query:

SELECT * FROM tableR r
INNER JOIN tableU u ON u.id = r.u_id
LEFT JOIN tableP p ON u.p_id = p.id
ORDER BY p.p_name;

CREATE TABLE tableR (
   id           INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
   u_id       INTEGER NOT NULL
);

CREATE TABLE tableU (
   id          INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
   p_id      INTEGER NOT NULL
);

CREATE TABLE tableP (
    id         INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    p_name INTEGER NOT NULL
);

CREATE INDEX p_name_index ON tableP (p_name);
CREATE INDEX p_id_index ON tableU (p_id);
CREATE INDEX u_id_index ON tableR (u_id);

tableR has about 5 million records.
tableU has 100k records.
table P has 1k records.

It's very weird.  If I change the last join to an INNER JOIN, everything
works great.  Any information on how I could improve this query would
greatly help.   I know it can't be THIS slow..

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

Reply via email to