Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn MySQL để tìm những khách hàng đã đặt hàng hai sản phẩm cụ thể

Tôi thực hiện loại truy vấn này theo cách sau:

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 giải pháp hiển thị của @najmeddine cũng tạo ra câu trả lời bạn muốn, nhưng nó không hoạt động tốt trên MySQL. MySQL gặp khó khăn khi tối ưu hóa GROUP BY truy vấn.

Bạn nên thử cả hai truy vấn, phân tích tối ưu hóa bằng EXPLAIN và cũng chạy một số kiểm tra và tính thời gian cho kết quả dựa trên khối lượng dữ liệu trong cơ sở dữ liệu của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tối ưu hóa hàm ORDER BY RAND () của MySQL?

  2. Làm thế nào để tạo / autoincrement hướng dẫn về chèn mà không có trình kích hoạt và chèn thủ công trong mysql?

  3. MySQL:Bỏ qua một cột đã chọn khi sử dụng DISTINCT

  4. SQL động là gì?

  5. Tham gia truy vấn con với học thuyết 2 DBAL