и каков принцип работы inner join, то что связывает таблицы это я знаю, а вот он сначала связывает таблицы, выбирая все записи из этих таблиц, а потом уже фильтруя их или же выбирает записи из таблицы, которые удовлетворяют условию фильтрации???
У нормального планировщика поведение конкретно для этих двух запросов должно быть одинаковым. В любом случае, перед вложенным циклом джоина нужно будет отфильтровать строки обеих таблиц по индексам. Т.к. условия фильтрации для обеих таблиц независимы, я даже не могу придумать, как выполнить запросы по-разному.
А вообще второй вариант гораздо понятнее и программисту, и СУБД (легче построить план выполнения).