Tento typ dotazu provádím následujícím způsobem:
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
řešení zobrazeno
by @najmeddine také vytváří požadovanou odpověď, ale nefunguje tak dobře na MySQL. MySQL má potíže s optimalizací GROUP BY
dotazy.
Měli byste zkusit oba dotazy a analyzovat optimalizaci pomocí EXPLAIN
a také spustit nějaké testy a měřit výsledky podle objemu dat ve vaší databázi.