Olá! Acredito que no exercício a consulta apresentará erro, pois o inner join usa o where e não on junto com outro where, que deve ser mantido ou trocado por and, filtrando os dados:
SELECT A.ID, B.ID, A.NOME, B.NOME FROM TABELA A
INNER JOIN TABELA B *WHERE* A.ID = B.ID
WHERE B.NOME = 'JOÃO';
Possível ajuste:
SELECT A.ID, B.ID, A.NOME, B.NOME FROM TABELA A
INNER JOIN TABELA B ON A.ID = B.ID
WHERE B.NOME = 'JOÃO';