Saya melakukan jenis kueri ini dengan cara berikut:
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
solusi ditampilkan
oleh @najmeddine juga menghasilkan jawaban yang Anda inginkan, tetapi tidak berfungsi dengan baik di MySQL. MySQL mengalami kesulitan dalam mengoptimalkan GROUP BY
kueri.
Anda harus mencoba kedua kueri, menganalisis pengoptimalan dengan EXPLAIN
, dan juga menjalankan beberapa pengujian dan menghitung waktu hasil berdasarkan volume data dalam database Anda.