0
I’m performing a database search where I perform some JOIN on different tables. In the SQL that inseir below I make a Join with the product table_categoria_compatible where the product id must be present in it to return with which categories it is compatible. In this product table_categoria_compativel has only the product id and the category id. When I run this SQL it returns me the listing of the products but it is duplicating the listed records. I tried to use group by passing the product id but it returns error saying that another parameter should be passed in group by and as I keep adding the parameters in group by it keeps returning the same error. Below is the SQL and the error examples
SELECT produto.id,
produto.nome,
produto.valor,
loja.id,
loja.nome,
loja.situacao,
categoria.id,
categoria.id_pai,
categoria.nome,
categoria.nome_pai,
FROM produto_derivacao
JOIN produto ON produto.id = produto_derivacao.produto_id
JOIN loja ON loja.id = produto.loja_id
JOIN categoria ON categoria.id = produto.categoria_id
JOIN produto_categoria_compativel ON produto.id = produto_categoria.produto_id
GROUP BY produto.id
Examples of errors:
coluna "loja.id" deve aparecer na cláusula GROUP BY ou ser utilizada em uma função de agregação
coluna "categoria.id" deve aparecer na cláusula GROUP BY ou ser utilizada em uma função de agregação
coluna "categoria.id_pai" deve aparecer na cláusula GROUP BY ou ser utilizada em uma função de agregação
Herivelton Paiva, if you use the distinct it of the stick in order by "Error: for SELECT DISTINCT, ORDER BY expressions should appear in the selection list"
– Gabriel Schmidt Cordeiro
Just add the same thing you have in your order by in the select clause.
– Marcos Regis