1
resposta

Dúvida sobre a aula

Olá, entendi bem o conteúdo sobre INNER JOIN, porém, fiquei com uma dúvida referente a aula.

SELECT A.MATRICULA, A.NOME, COUNT(*) FROM tabela_de_vendedores A INNER JOIN notas_fiscais B
ON A.MATRICULA = B.MATRICULA GROUP BY A.MATRICULA, A.NOME;

No exemplo acima, é feita a contagem das vendas dos vendedores, passando os parametros do seu nome e matricula, conectando a tabela de vendores com a tablea de notas ficais. A minha maior dúvida é, o A.MATRICULA E B.MATRICULA, esse A e B na frente fazem diferença? É obrigatório especificamente o uso de A e B? E se eu usa C e D? Qual é o intuito de se usar essas letras no começo?

1 resposta

Oi, José! Como está?

Essas letras na frente de MATRICULA são chamadas de aliases, que são apelidos dados às tabelas para facilitar a escrita da consulta. No exemplo que você deu, A é o alias da tabela tabela_de_vendedores e B é o alias da tabela notas_fiscais.

O uso de aliases é opcional, contudo, é uma boa prática para tornar a consulta mais legível e evitar ambiguidades quando há mais de uma tabela envolvida na consulta.

Nesse caso em específico, como ambas tabelas compartilham da coluna MATRICULA, precisamos evidenciar a qual tabela cada campo se refere — caso contrário, geraríamos um conflito. Uma maneira de solucionar esse problema é explicitar o nome de cada tabela, deste modo:

SELECT tabela_de_vendedores.MATRICULA, tabela_de_vendedores.NOME, COUNT(*) FROM tabela_de_vendedores INNER JOIN notas_fiscais
ON tabela_de_vendedores.MATRICULA = notas_fiscais.MATRICULA GROUP BY tabela_de_vendedores.MATRICULA, tabela_de_vendedores.NOME;

No entanto, observe que a consulta ficou muito mais longa e difícil de compreender. Por esse motivo, é mais bacana trabalhar com aliases (apelidos).

Além disso, José, você pode usar qualquer letra ou até mesmo palavras como aliases, desde que não sejam palavras reservadas do SQL.

Espero que tenha ficado mais claro! Qualquer dúvida, estou por aqui.

Uma abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!