Hi, ALL,

sqlite> EXPLAIN QUERY PLAN SELECT DISTINCT playersinleague.playerid, leaguescore
hitter.scoreid, leaguescorehitter.value, leaguescorepitcher.scoreid, leaguescore
pitcher.value FROM playersinleague, leaguescorehitter, leaguescorepitcher WHERE
playersinleague.id = 1 AND playersinleague.playerid = 1 AND (playersinleague.pla
yerid = leaguescorehitter.playerid AND playersinleague.ishitter = "1") OR (playe
rsinleague.playerid = leaguescorepitcher.playerid AND playersinleague.ishitter =
 "0");
0|0|0|SEARCH TABLE playersinleague USING INDEX playersinleague_id (id=?) (~2 row
s)
0|0|0|SEARCH TABLE playersinleague USING AUTOMATIC COVERING INDEX (ishitter=?) (
~7 rows)
0|1|1|SCAN TABLE leaguescorehitter (~1000000 rows)
0|2|2|SCAN TABLE leaguescorepitcher (~500000 rows)
0|0|0|USE TEMP B-TREE FOR DISTINCT

leaguescorehitter
id integer
playerid integer
scoreid integer
value double
foreign key(id) references leagues(id)
foreign key(playerid) references playersinleague(playerid)
foreign key(scoreid) references scorehits(scoreid)

leaguescorepitcher
id integer
playerid integer
scoreid integer
value double
foreign key(id) references leagues(id)
foreign key(playerid) references playersinleague(playerid)
foreign key(scoreid) references scorepitch(scoreid)

I don't see what is wrong. It should be using foreign key constraints
on the last two searches, but it looks like it does not.

What can I do to improve it?

Thank you.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to