Buscar dados que mais aparecem juntos no banco - MySQL

10/02/2017

0

Bom pessoal, minha dúvida é o seguinte, eu tenho 3 tabelas no meu banco, Produto, Compra e produtoCompra, e queria saber como eu consigo encontrar quais produtos mais vezes formaram uma dupla em uma compra.
Por exemplo, eu queria saber quantas vezes meus produtos Banana e Maçã apareceram na mesma compra, como sou iniciante, fiz a consulta dessa forma e não sei se é o mais apropriado:

(O nome da chave primária da minha tabela compra é 'numero')

/*SELECIONANDO A QNTD DE VEZES QUE MAÇÃ E BANANA APARECERAM JUNTAS EM UMA MESMA COMPRA*/
select count(numero) as Qntd from Compra where numero IN(
                                                                                                  /*AQUI EU DESCUBRO EM QUAIS COMPRAS BANANA E MAÇÃ APARECEM JUNTAS*/

												  /*DADOS BUSCADOS*/
												  SELECT compra.numero

                                                                                                  /*LOCAL DE BUSCA*/
							                                          FROM compra, produto, produtoCompra

                                                                                                  /*LIGANDO AS TABELAS*/
												  WHERE produtoCompra.codProduto=produto.codigo
												  AND produtocompra.numCompra = compra.numero

                                                                                                  /*ESPECIFICANDO OS DADOS*/ 
												  AND produto.nome IN(SELECT nome FROM produto WHERE nome="Maçã" OR nome="Banana")
												  GROUP BY(compra.numero)
												  HAVING COUNT(compra.numero)>1);


Mas agora eu não quero saber só a quantidade de vezes que maçã e banana apareceram juntas, mas sim quais produtos mais apareceram juntos (duplas) e qual a quantidade de vezes isso ocorreu.

Ps: Não sei se fui claro, mas agradeço a atenção
Lucas Gomes

Lucas Gomes

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar