Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête MySQL pour trouver les clients qui ont commandé deux produits spécifiques

Je fais ce type de requête de la manière suivante :

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';

Le GROUP BY solution montré par @najmeddine produit également la réponse souhaitée, mais elle ne fonctionne pas aussi bien sur MySQL. MySQL a du mal à optimiser GROUP BY requêtes.

Vous devriez essayer les deux requêtes, en analysant l'optimisation avec EXPLAIN , et exécutez également des tests et chronométrez les résultats en fonction du volume de données dans votre base de données.