Mysql 在不使用子查询的情况下,统计具有特定状态的行的出现次数

Mysql 在不使用子查询的情况下,统计具有特定状态的行的出现次数,mysql,subquery,Mysql,Subquery,这是我的桌子 贷款id投标id贷款人id借款人id金额利息期限贷款状态 1 1 60 63 300.00 12.00 3 'completed' 2 2 61 63 300.00 12.00 3 'completed' 3 3 62 63 300.00 12.00 3 'pending', 4 1 62 63 300.00 12.00 3 'pending' 7 4 60 63 300.00 12.00 3 'com

这是我的桌子

贷款id投标id贷款人id借款人id金额利息期限贷款状态

1   1  60  63  300.00  12.00  3  'completed'
2   2  61  63  300.00  12.00  3  'completed'
3   3  62  63  300.00  12.00  3  'pending',
4   1  62  63  300.00  12.00  3  'pending'
7   4  60  63  300.00  12.00  3  'completed'
我只想提取那些所有记录的贷款状态均为“已完成”的投标id。这意味着,如果存在状态为“待定”的任何“投标id”记录,则不会提取该记录

我使用的查询如下所示,效果良好:

SELECT bid_id 
FROM loan 
WHERE bid_id NOT IN ( 
    SELECT l.bid_id 
    FROM loan l 
    WHERE l.`loan_status` = 'pending' 
    AND l.bid_id = bid_id 
    GROUP BY l.`bid_id` 
    HAVING COUNT(l.`bid_id`)>= 1 
) 
GROUP BY bid_id

有没有其他方法可以在不使用子查询的情况下获得所需的结果。

您可以通过
分组方式和
拥有

select bid_id
from loan
group by bid_id
having sum(loand_status = 'pending') = 0