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

Truy vấn Mysql để tìm ID nơi nhiều điều kiện đáp ứng cho một cột

SELECT ID, TYPE FROM types NATURAL JOIN (
  SELECT ID FROM types GROUP BY ID HAVING SUM(COLOR='Red') AND SUM(COLOR='Blue')
) t WHERE COLOR IN ('Red', 'Blue')

Xem nó trên sqlfiddle .

Ngoài ra, nếu bạn hài lòng khi các loại được nối thành một chuỗi được phân tách, bạn có thể trích xuất dữ liệu mong muốn trong một lần chuyển:

SELECT   ID, GROUP_CONCAT(TYPE)
FROM     types
WHERE    COLOR IN ('Red', 'Blue')
GROUP BY ID
HAVING   COUNT(*) = 2

Xem nó trên sqlfiddle .

Lưu ý rằng, nếu bảng của bạn có thể chứa nhiều bản ghi có cùng một (ID, COLOR) ghép nối, bạn nên thay thế COUNT(*) với COUNT(DISTINCT COLOR) đắt hơ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. Bind_param Lỗi không đối tượng w / mysqli

  2. Làm thế nào để triển khai hệ thống bộ lọc trong SQL?

  3. Cloud 9 IDE không thể kết nối với cơ sở dữ liệu

  4. MySQL không sử dụng chỉ mục (Sử dụng filesort) khi sử dụng ORDER BY

  5. Làm cách nào để tạo người dùng có cùng đặc quyền với quyền root trong MySQL / MariaDB?