Oii tudo bem?
Estou utilizando o MySql para realizar as atividades proposta nas aulas. Quando tentei rodar o código desenvolvido pela professora na aula o MySql apresentou o seguinte erro:
20:24:39 SELECT pr.nome, subquery.idproduto, subquery.idpedido
FROM ( SELECT ip.idpedido, ip.idproduto
FROM pedidos p
INNER JOIN itenspedidos ip
ON p.id = ip.idpedido
WHERE MONTH(p.datahora) = 1 )
RIGHT JOIN produtos pr
ON pr.id = ip.idproduto LIMIT 0, 1000
Error Code: 1248. Every derived table must have its own alias 0.000 sec
Então comecei a pesquisar sobre como realizar essa subconsulta e não consegui encontrar muita coisa sobre, mas o ChatGPT me mostrou o seguinte código que teve o mesmo resultado do que o apresentado na aula:
SELECT pr.nome, subquery.idproduto, subquery.idpedido
FROM (
SELECT ip.idpedido, ip.idproduto
FROM pedidos p
INNER JOIN itenspedidos ip
ON p.id = ip.idpedido
WHERE MONTH(p.datahora) = 1
) AS subquery
RIGHT JOIN produtos pr
ON pr.id = subquery.idproduto;
Não consegui entender muito bem como funciona a utilização do AS nesse caso, quando devo usá-lo e porquê ele se repetiu no trecho pr.id = subquery.idproduto
. Além disso, teria outra forma de fazer a mesma coisa proposta na aula pelo MySql?