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.