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

MySQL Query per trovare i clienti che hanno ordinato due prodotti specifici

Eseguo questo tipo di query nel modo seguente:

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

Il GROUP BY soluzione mostrato di @najmeddine produce anche la risposta che desideri, ma non funziona altrettanto bene su MySQL. MySQL ha difficoltà a ottimizzare GROUP BY domande.

Dovresti provare entrambe le query, analizzando l'ottimizzazione con EXPLAIN , ed esegui anche alcuni test e cronometra i risultati in base al volume di dati nel tuo database.