Bom dia!
Segundo a instrutora: " Em "Subconsultas", consultamos dados da mesma tabela e usamos o id de clientes e pedidos, mas em nenhum momento criamos uma obrigatoriedade de que esses campos existissem para que conseguíssemos trazer as informações da tabela."
" No JOIN , precisamos que os campos que fazem a relação entre as duas tabelas existam, obrigatoriamente. Isso é necessário porque queremos que o JOIN nos traga o nome dos clientes, onde o ID que está na tabela de clientes seja igual ao ID que está na tabela de pedidos."
Achei a explicação acima um pouco confusa. Não entendi.
Fiz o teste e percebi que o INNER JOIN funciona sem o ON. Por exemplo o código SELECT * FROM clientes INNER JOIN pedidos funciona e resulta na junção de cada cliente com todos os pedidos, embora esse não seja o resultado esperado. Não há obrigatoriedade do uso do ON
Eu entendi que o INNER JOIN faz a junção de duas tabelas. No código SELECT * FROM clientes INNER JOIN pedidos, a junção ocorre mas será juntado cada cliente com todos os pedidos. Aí precisamos aplicar um filtro, ON, que irá retornar a tabela de acordo com a condição.
Enfim o ON funciona para INNER JOIN como o HAVING funciona para o GROUP BY e o WHERE funciona para SELECT nas situações gerais. Estou correto?
Poderiam por gentileza explicar a questão da obrigatoriedade mencionada pela instrutora?