Правя този тип заявка по следния начин:
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
решение показан
от @najmeddine също дава отговора, който искате, но не се представя толкова добре в MySQL. MySQL трудно оптимизира GROUP BY
запитвания.
Трябва да опитате и двете заявки, като анализирате оптимизацията с EXPLAINкод>
, а също така изпълнете някои тестове и замерете резултатите, като се има предвид обема данни във вашата база данни.