A
join acontece antes do where , Contudo... O
where cláusula é um filtro para todas as linhas retornadas pela junção, mas o otimizador reconhecerá isso se existir um índice em A.id , ele será usado para recuperar linhas de A essa correspondência, então a junção acontecerá, então teoricamente a cláusula where filtrará os resultados, mas novamente o otimizador reconhecerá que a condição já foi atendida e a ignorará como um filtro. Tudo isso dito, o otimizador sempre retornará o mesmo resultado que seria retornado sem o otimizador.