sql >> Database >  >> RDS >> Mysql

MySQL-query om klanten te vinden die twee specifieke producten hebben besteld

Ik doe dit type zoekopdracht op de volgende manier:

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

De GROUP BY oplossing weergegeven door @najmeddine levert ook het gewenste antwoord op, maar het presteert niet zo goed op MySQL. MySQL heeft moeite met het optimaliseren van GROUP BY vragen.

Probeer beide zoekopdrachten en analyseer de optimalisatie met EXPLAIN , en voer ook enkele tests uit en time de resultaten gezien de hoeveelheid gegevens in uw database.



  1. Wat is het maximum aantal tekens voor de NVARCHAR(MAX)?

  2. Query om de laagste waarde te krijgen die groter is dan nul en is niet NULL

  3. MariaDB JSON_ARRAY_APPEND() uitgelegd

  4. Fout bij toevoegen van stand-by