Oi, Priscila, tudo bem?
Desculpe a demora em te responder!
A ordem de execução das operações em uma consulta SQL não é a mesma que a ordem em que escrevemos a consulta. Dessa forma, a ordem em que os comandos são interpretados é a seguinte:
FROM / JOIN: a tabela é produzida com o uso de JOINs.WHERE: as linhas que não satisfazem a condição são descartadas.GROUP BY: as linhas restantes são agrupadas com base nas colunas listadas.AGGREGATE FUNCTIONS: as funções de agregação são aplicadas.HAVING: as linhas que não satisfazem a condição são descartadas.SELECT: as colunas finais são selecionadas.ORDER BY: as linhas são ordenadas.LIMIT / OFFSET: as linhas finais são selecionadas.
Então, no seu caso, a operação INNER JOIN é realizada antes do SELECT. Isso significa que, quando o SELECT é executado, ele está operando na tabela resultante do INNER JOIN, não apenas na tabela "notas_fiscais A". Portanto, não há erro no seu código, pois o INNER JOIN já foi realizado quando o SELECT é executado.
Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!