Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL Query, aby znaleźć klientów, którzy zamówili dwa konkretne produkty

Tego typu zapytania wykonuję w następujący sposób:

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';

GRUPA WG rozwiązanie pokazano @najmeddine również daje odpowiedź, której potrzebujesz, ale nie działa tak dobrze na MySQL. MySQL ma trudności z optymalizacją GROUP BY zapytania.

Powinieneś wypróbować oba zapytania, analizując optymalizację za pomocą EXPLAIN , a także uruchom kilka testów i zmierz czas wyników, biorąc pod uwagę ilość danych w Twojej bazie danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać wstawioną wartość dla wyzwalacza?

  2. Warunek WHERE w MySQL z 16 różnymi przykładami zapytań

  3. java.lang.AbstractMethodError:com.mysql.jdbc.PreparedStatement.setBlob(ILjava/io/InputStream;)V

  4. Jak wybrać wiersze, w których wartość kolumny NIE JEST NULL przy użyciu ActiveRecord CodeIgniter?

  5. Lon/Lat Order przy użyciu przestrzennego typu POINT w MySQL