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