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]