On Thu, 16 Jan 2014 09:47:58 -0500 Igor Tandetnik <i...@tandetnik.org> wrote:
> On 1/16/2014 5:21 AM, Rob Golsteijn wrote: > > SELECT * FROM C > > LEFT JOIN A ON A.a*A.a + B.b*B.b = C.c*c.c > > LEFT JOIN B ON A.a*A.a + B.b*B.b = C.c*c.c; > > I'm not sure how SQLite interprets this query. In any case, it > doesn't make much sense. I suspect you are looking for something like > this: > > SELECT * FROM A, B, C > WHERE A.a*A.a + B.b*B.b = C.c*C.c; That eliminates rows that don't meet the WHERE. I think what's intended is select a, b, c from C left join ( select a, b from A cross join B where a <= b -- <== would eliminate duplicates ) as AB on a*a + b*b = c*c; which is easier to read if you ask me. I don't know if it executes faster. For those who understand it, here's the EXPLAIN output: addr opcode p1 p2 p3 p4 p5 ----- ----- ----- ----- ----- ----- ----- 0 Trace 0 0 0 00 1 Integer 21 1 0 00 2 Once 0 21 0 00 3 OpenEpheme 1 2 0 00 4 Goto 0 46 0 00 5 OpenRead 2 2 0 1 00 6 OpenRead 3 3 0 1 00 7 Rewind 2 19 0 00 8 Rewind 3 18 0 00 9 Column 2 0 2 00 10 Column 3 0 3 00 11 Gt 3 17 2 collseq(BI 6b 12 Column 2 0 4 00 13 Column 3 0 5 00 14 MakeRecord 4 2 3 00 15 NewRowid 1 2 0 00 16 Insert 1 3 2 08 17 Next 3 9 0 01 18 Next 2 8 0 01 19 Close 2 0 0 00 20 Close 3 0 0 00 21 Return 1 0 0 00 22 OpenRead 0 4 0 1 00 23 Rewind 0 44 0 00 24 Integer 0 6 0 00 25 Rewind 1 40 0 00 26 Column 1 0 9 00 27 Multiply 9 9 8 00 28 Column 1 1 11 00 29 Multiply 11 11 10 00 30 Add 10 8 7 00 31 Column 0 0 8 00 32 Multiply 8 8 10 00 33 Ne 10 39 7 6a 34 Integer 1 6 0 00 35 Column 1 0 13 00 36 Column 1 1 14 00 37 Column 0 0 15 00 38 ResultRow 13 3 0 00 39 Next 1 26 0 01 40 IfPos 6 43 0 00 41 NullRow 1 0 0 00 42 Goto 0 34 0 00 43 Next 0 24 0 01 44 Close 0 0 0 00 45 Halt 0 0 0 00 46 Transactio 0 0 0 00 47 VerifyCook 0 3 0 00 48 TableLock 0 2 0 A 00 49 TableLock 0 3 0 B 00 50 TableLock 0 4 0 C 00 51 Goto 0 5 0 00 --jkl _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users