I think I know what the problem is. SQLite doesn't like having a table name following an openint parenthesis "(" in the FROM clause. Try the following statements instead:
SELECT main.id, prim.primname, sec.secname FROM main INNER JOIN sec ON main.secid = sec.secid INNER JOIN prim ON main.primid = prim.primid; Or SELECT main.id, prim.primname, sec.secname FROM sec INNER JOIN main INNER JOIN prim ON prim.primid = main.primid ON sec.secid = main.secid; Simon B. On Tue, 2004-03-09 at 07:52, Guillermo Fernandez Castellanos wrote: > Hi, > > I've had problems with inner join transactions. > > Here is what I do: > > I create the tables: > sqlite> create table main ( > ...> id integer primary key, > ...> primid int(10), > ...> secid int(10) > ...> ); > sqlite> > sqlite> create table prim ( > ...> primid integer primary key, > ...> primname varchar(10) > ...> ); > sqlite> > sqlite> create table sec ( > ...> secid integer primary key, > ...> secname varchar(10) > ...> ); > > I populate the tables: > sqlite> insert into prim(primid,primname) values (null,'prim1'); > sqlite> insert into prim(primid,primname) values (null,'prim2'); > sqlite> insert into prim(primid,primname) values (null,'prim3'); > sqlite> > sqlite> insert into sec(secid,secname) values (null,'sec1'); > sqlite> insert into sec(secid,secname) values (null,'sec2'); > sqlite> insert into sec(secid,secname) values (null,'sec3'); > sqlite> > sqlite> insert into main(id,primid,secid) values (null,1,1); > sqlite> insert into main(id,primid,secid) values (null,2,2); > sqlite> insert into main(id,primid,secid) values (null,3,3); > > I check the integrity of my tables: > sqlite> select * from main; > 1|1|1 > 2|2|2 > 3|3|3 > sqlite> select * from prim; > 1|prim1 > 2|prim2 > 3|prim3 > sqlite> select * from sec; > 1|sec1 > 2|sec2 > 3|sec3 > > I do a simple inner join to check that it is supported by sqlite: > sqlite> select main.id,prim.primname from main inner join prim on > main.primid=prim.primid; > 1|prim1 > 2|prim2 > 3|prim3 > > I then try a more complicated inner join: > sqlite> select main.id,prim.primname,sec.secname from (main inner join sec on > main.secid=sec.secid) inner join prim on main.primid=prim.primid; > SQL error: near "main": syntax error > sqlite> > sqlite> select main.id,prim.primname,sec.secname from sec inner join (main > inner join prim on prim.primid=main.primid) on sec.secid=main.secid; > SQL error: near "main": syntax error > sqlite> > > Why does it not work? > > Can this be considered as a nested transaction? > If it's the case, how could I do something similar? > > Thanks a lot, > > G. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >