Hello,

Reading SQLAlchemy release note, I see a functionality complaint on SQLite.

see :http://docs.sqlalchemy.org/en/rel_0_9/changelog/migration_09.html


In its last release Note, SQLAlchemy complains that  SQLite doesn't allow
this :

SELECT a.*, b.*, c.* FROM a LEFT OUTER JOIN (b JOIN c ON b.id = c.id) ON a.id

Which necessitates that workaround (which is said non-performant on
other databases) :

SELECT a.*, anon_1.* FROM a LEFT OUTER JOIN (
                SELECT b.id AS b_id, c.id AS c_id
                FROM b JOIN c ON b.id = c.id
            ) AS anon_1 ON a.id=anon_1.b_id


Is it standard SQL ?
Would there be a performance gain if SQLite could ever implement it ?

example :
create table a(id);
create table b(id);
create table c(id);
insert into a values (1),(2),(3);
insert into b values (1),(2);
insert into c values (1);

SELECT a.*, anon_1.* FROM a LEFT OUTER JOIN (
                SELECT b.id AS b_id, c.id AS c_id
                FROM b JOIN c ON b.id = c.id
            ) AS anon_1 ON a.id=anon_1.b_id

==> awaited result in :
1|1|1
2||
3||
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to