Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL заявка за намиране на клиенти, които са поръчали два конкретни продукта

Правя този тип заявка по следния начин:

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 , а също така изпълнете някои тестове и замерете резултатите, като се има предвид обема данни във вашата база данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. рейк прекратен! неинициализирана константа Mysql2

  2. Пренасочване на скитни портове за Mysql

  3. Как да добавя нов език за съобщенията за грешки на mysql?

  4. ИЗБЕРЕТЕ потребители от базата данни MySQL чрез битова маска за привилегии?

  5. Как да разположите Percona XtraDB Cluster 8 за висока наличност