I am doing a search in the database where I perform some JOIN in different tables. In the SQL that inseir below I make a join with the commodity_category_table table where the product id must be present in it to return with which categories it is compatible. In this table product_category_compatibility has only the product id and 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 must be passed in group by and as I add the parameters in group by it continues to return the same error. Below is the SQL and 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