Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

NÃO COMPREENDI O 'X'

Olá, minha dúvida é, por que sem o prefixo X o comando não funciona? Ele criou o seguinte exemplo:

SELECT X.EMBALAGEM, X.PRECO_MAXIMO FROM 
(SELECT EMBALAGEM, MAX(PRECO_DE_LISTA) AS PRECO_MAXIMO FROM tabela_de_produtos
GROUP BY EMBALAGEM) X WHERE X.PRECO_MAXIMO >= 10;

Entretanto, pensei? QUal a necessidade do X? Sem ele, ficaria:

SELECT EMBALAGEM, MAX(PRECO_DE_LISTA) FROM 
(SELECT EMBALAGEM, MAX(PRECO_DE_LISTA) FROM tabela_de_produtos
GROUP BY EMBALAGEM) WHERE MAX(PRECO_DE_LISTA) >= 10;

Mas ae aparece um erro code 1248. O que exatamente significa o uso desse X? Como a linguagem está compreendendo essa ligação? e por que não compreende sem?

1 resposta
solução!

Felippe, como seu FROM é uma tabela derivada, ou seja, ela é uma expressão que retorna uma tabela; você deve obrigatoriamente usar um alias para esta expressão, no caso, foi utilizado o X como um nome para a expressão. O MySQL não premite uma tabela derivada sem alias, pois não teria como ele saber de qual tabela está se referindo determinada coluna

Sugiro dar uma estudada sobre table aliases no MySQL, pois ela melhora a legibilidade do código, agiliza a criação de consultas e permite relizar diversas consultas avançadas. O entendimento de aliases é fundamental para o avanço na linguagem SQL e para trabalhar em equipe.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software