I once posted about that on this mailing list and one of the solution Mr
DRH suggested was to auto-expand the table name (<table_name> would
become SELECT * FROM <table_name>) internaly in the SQLite API, but I
have no idea if any efforts were put in that direction since it could
probably break the old syntax.

Ce fut un plaisir de pouvoir aider un confrère.


Simon B.

 
On Tue, 2004-03-09 at 09:00, Guillermo Fernandez Castellanos wrote:

> Sweet... works right perfect.
> 
> Can it be considered as a bug?
> 
> Merci beaucoup!
> 
> Guille
> 
> Simon Berthiaume wrote:
> > 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]
> >>
> > 
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

Reply via email to