sql >> Database teknologi >  >> RDS >> Mysql

MySQL-forespørgsel for at finde kunder, der har bestilt to specifikke produkter

Jeg laver denne type forespørgsel på følgende måde:

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

GROUP BY løsning vist af @najmeddine producerer også det svar, du ønsker, men det fungerer ikke så godt på MySQL. MySQL har svært ved at optimere GROUP BY forespørgsler.

Du bør prøve begge forespørgsler og analysere optimeringen med EXPLAIN , og kør også nogle test og tid resultaterne givet mængden af ​​data i din database.



  1. Forskellen mellem #temptable og ##Temptable?

  2. PostgreSQL:Hvordan sender man parametre fra kommandolinjen?

  3. Jeg har brug for at auto_incremente et felt i MySQL, der ikke er primær nøgle

  4. Vælg tid mellem to gange mysql