Result for a Mysql query

Asked

Viewed 30 times

0

I have this query in Mysql:

SELECT 
 usuarios.modalidade, 
 produtos.idproduto,
 produtos.nome,
 produtos.referencia,
 produtos.ean,
 produtos.valorvenda,
 produtos.quantidadeprodutos.minimo,
 tabeladepreco.desconto 
FROM produtos,tabeladepreco INNER JOIN usuarios ON
 tabeladepreco.modalidade = usuarios.modalidade 
WHERE produtos.nome like '%arroz%' AND 
 tabeladepreco.idproduto = produtos.idproduto AND 
 usuarios.modalidade = tabeladepreco.modalidade AND 
 produtos.ativo = 1

Where my idea is to bring all products with the name arroz, but if the form of the price list (tabeladepreco) is equal to the mode of the table usuários. The search is correct, but, the table usuarios has more than a thousand lines, and he repeats the products for each line.

I wonder if there’s any way he can do it just once, only I only have the mode to compare with the table usuarios.

  • It would be nice if you, instead of using tabeladepreco.idproduto = produtos.idproduto in AND, use in INNER JOIN: `FROM products INNER JOIN tableeladepreco ON tableeladepreco.idproduct = products.idproduct. Also remove AND redundancy from the mode.

  • I did it this way @Rogersonnazário: SELECT produtos.idproduto,produtos.nome,produtos.referencia,produtos.ean,produtos.valorvenda,produtos.quantidade,produtos.minimo,tabeladepreco.desconto FROM produtos INNER JOIN tabeladepreco ON tabeladepreco.idproduto = produtos.idproduto WHERE produtos.nome like '%arroz%' AND produtos.ativo = 1 But still repeats the result.

1 answer

0


I suggest applying the keyword DISTINCT, right after the SELECT in order to remove duplicate entries.

 SELECT DISTINCT
  usuarios.modalidade, 
  produtos.idproduto,
  produtos.nome,
  produtos.referencia,
  (...)
  • I found out that I’m actually going to have to use one more comparison, the user id, to make it work. Since I have a Java Script call for this code, I’ll see how to send another variable for query. Thanks for your attention.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.