Code:
select *
from a left join b on a.i = b.i
where a.foo = 'foo'
so both i fields are primary.
explain on table a = possible key, key = NULL

everything changes with

Code:
where a.i = something
index use kicks in.

Any explanation ?