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

Đếm số lần xuất hiện dựa trên một số điều kiện cho hai bảng

Nếu tôi theo dõi bạn một cách chính xác, bạn có thể sử dụng exists để lọc trên table2 :

select count(*) as cnt
from table1 t1
where t1.sex = 1 and t1.age = 3 and exists (
    select 1
    from table2 t2 
    where t2.id = t1.id and t2.var1 = 'Wisconsin'
)

Điều này đếm các hàng trong bảng đầu tiên có ít nhất một hàng trong bảng thứ hai có Wisconsin. Mặt khác, nếu bạn muốn đảm bảo rằng tất cả các hàng trong bảng thứ hai thỏa mãn điều kiện, sau đó một tùy chọn là:

select count(*) as cnt
from table1 t1
inner join (
    select id
    from table2
    group by id
    having min(var1 <=> 'Wisconsin') = 1
) t2 on t2.id = t1.id
where t1.sex = 1 and t1.age = 3


  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 múi giờ của MySQL?

  2. php mysqli_connect:phương thức xác thực không xác định đối với ứng dụng khách [caching_sha2_password]

  3. Trong MySQL, hàm CHAR () hoạt động kỳ lạ

  4. Tốt hơn là trả lại một truy vấn lớn hay một vài truy vấn nhỏ hơn?

  5. MySQL:Cách tìm kiếm nhiều bảng cho một chuỗi tồn tại trong bất kỳ cột nào