I just want to add that this SQL query works great at 3.5.4.
And this is explain:

addr  opcode         p1    p2    p3    p4             p5  comment
----  -------------  ----  ----  ----  -------------  --  -------------
0     Trace          0     0     0     EXPLAIN SELECT
            town.id, town_log.new_player_id, player.name
FROM
            town_log
            LEFT JOIN town
            LEFT JOIN player
ON
            town.id = town_log.town_id AND town_log.new_player_id = player.id
WHERE
            town_log.id = 5195;  00
1     Integer        5195  1     0                    00
2     Goto           0     46    0                    00
3     SetNumColumns  0     5     0                    00
4     OpenRead       0     14    0                    00
5     SetNumColumns  0     1     0                    00
6     OpenRead       1     6     0                    00
7     SetNumColumns  0     2     0                    00
8     OpenRead       2     2     0                    00
9     SetNumColumns  0     2     0                    00
10    OpenRead       3     3     0     keyinfo(1,BINARY)  00
11    MustBeInt      1     41    0                    00
12    NotExists      0     41    1                    00
13    Integer        0     3     0                    00
14    Rewind         1     38    0                    00
15    Integer        1     3     0                    00
16    Integer        0     4     0                    00
17    Column         0     4     6                    00
18    IsNull         6     33    0                    00
19    Affinity       6     1     0     db             00
20    MoveGe         3     33    6     1              00
21    IdxGE          3     33    6     1              01
22    IdxRowid       3     10    0                    00
23    MoveGe         2     0     10                   00
24    Column         1     0     10                   00
25    Column         0     1     11                   00
26    Ne             11    32    10    collseq(BINARY)  6b
27    Integer        1     4     0                    00
28    Column         1     0     12                   00
29    Column         0     4     13                   00
30    Column         2     1     14                   00
31    ResultRow      12    3     0                    00
32    Next           3     21    0                    00
33    IfPos          4     37    0                    00
34    NullRow        2     0     0                    00
35    NullRow        3     0     0                    00
36    Goto           0     27    0                    00
37    Next           1     15    0                    00
38    IfPos          3     41    0                    00
39    NullRow        1     0     0                    00
40    Goto           0     15    0                    00
41    Close          0     0     0                    00
42    Close          1     0     0                    00
43    Close          2     0     0                    00
44    Close          3     0     0                    00
45    Halt           0     0     0                    00
46    Transaction    0     0     0                    00
47    VerifyCookie   0     92    0                    00
48    TableLock      0     14    0     town_log       00
49    TableLock      0     6     0     town           00
50    TableLock      0     2     0     player         00
51    Goto           0     3     0                    00


PS:
And the last one. I want to say that generally SQLite-3.6.3 is slowly
than 3.5.4 on my OS X 10.5.5.
My result is that 3.6.3 is slowly near 5-7%.

--
Alexander Batyrshin aka bash
bash = Biomechanica Artificial Sabotage Humanoid



On Sat, Sep 20, 2008 at 8:45 AM, Alexander Batyrshin <[EMAIL PROTECTED]> wrote:
>  Hello everyone,
>
> I gets strange result from this query on SQLite-3.6.2
>
> SELECT
>            town.id, town_log.new_player_id, player.name
> FROM
>            town_log
>            LEFT JOIN town
>            LEFT JOIN player
> ON
>            town.id = town_log.town_id AND town_log.new_player_id = player.id
> WHERE
>            town_log.id = 5195
>
> As you can see this query should return only 1 row, because
> town_log.id is unique key.
> But I gets rows with different town.id (1 col), with constant
> new_player.id (2 col) and JOIN do not work for player.name, couse 3
> col is empty.
>
> result:
> [....]
> 45512       9266
> 44544       9266
> 45229       9266
> 46376       9266
> 45927       9266
> 46645       9266
> [....]
>
>
> Any ideas what's going on?
>
> --
> Alexander Batyrshin aka bash
> bash = Biomechanica Artificial Sabotage Humanoid
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to