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

Nhận tất cả bản ghi của Cấp độ 1 chỉ có số lượng giá trị được chỉ định trong Cấp độ 2

Tham gia bảng với một truy vấn con đếm số lượng hàng cho cấp độ chính và chỉ chọn những hàng có số lượng bạn muốn.

SELECT DISTINCT a.level1 AS Parent, a.level2 AS Child
FROM yourTable AS a
JOIN (SELECT level1, COUNT(DISTINCT level2) AS children
      FROM yourTable
      GROUP BY level1) AS b
ON a.level1 = b.level1
WHERE children = :child

Thay thế :child với số lượng trẻ em mà bạn đang cố gắng đối sánh.

DEMO

Sử dụng COUNT(Column2) thay vì COUNT(*) sẽ bỏ qua các hàng mà Column2NULL , vì vậy nó sẽ không bao gồm A100 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt MySQL với ansible trên ubuntu

  2. Cách chèn một mảng vào một câu lệnh MySQL Prepared duy nhất w / PHP và PDO

  3. Chèn hàng mới bằng trình kích hoạt trên cùng một bảng

  4. MySQL TIMEDIFF () so với TIMESTAMPDIFF ():Sự khác biệt là gì?

  5. Cách trả lại id trên Phụ trang với mybatis trong mysql với chú thích