On 1/5/20, Keith Medcalf <kmedc...@dessus.com> wrote: > > Hrm. Inconsistent/incorrect results. Consider: > > create table a(id integer primary key, a); > insert into a values (1,1), (2,1), (3,1); > create table b(id integer primary key, b); > insert into b values (1,2), (3,2), (4,2); > create table c(id integer primary key, c); > insert into c values (1,3), (4,3), (5,3); > > select * from a, b, c using (id); -- very strange result > > id a id b c > ---------- ---------- ---------- ---------- ---------- > 1 1 1 2 3 > 1 1 3 2 3 > 1 1 4 2 3
PostgreSQL and MySQL process the query as follows: SELECT * FROM a, (b JOIN c USING(id)); SQLite processes the query like this: SELECT * FROM (a,b) JOIN c USING (id); I don't know which is correct. Perhaps the result is undefined. Note that both MySQL and SQLite do allow you to use parentheses, as shown in my examples, to define the order of evaluation. PostgreSQL does not, sadly. MS-SQL does not (as far as I can tell) support the USING syntax on a join. -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users