Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Query para encontrar clientes que encomendaram dois produtos específicos


Faço esse tipo de consulta da seguinte forma:
SELECT COUNT(DISTINCT t1.userid) AS user_count
  FROM TRANSACTIONS t1
  JOIN TRANSACTIONS t2 USING (userid)
 WHERE t1.product_id = 'prod1' 
   AND t2.product_id = 'prod2';

O GROUP BY solução exibido por @najmeddine também produz a resposta que você deseja, mas não funciona tão bem no MySQL. MySQL tem dificuldade em otimizar GROUP BY consultas.

Você deve tentar ambas as consultas, analisando a otimização com EXPLAIN , e também executar alguns testes e cronometrar os resultados de acordo com o volume de dados em seu banco de dados.