我有一张table叫赠品,每个赠品都可以有参赛者。我想知道没有赢家的赠品的数量。参赛者表中有一个名为winner的字段,该字段为1或0。
我的数据看起来像:
赠品桌
| id | name |
|----|------------|
| 1 | Giveaway 1 |
| 2 | Giveaway 2 |
选手表
| id | giveaway_id|winner|
|----|------------|------|
| 1 | 1 | 0 |
| 2 | 1 | 0 |
| 3 | 2 | 0 |
我的问题是:
SELECT (SELECT COUNT(id) FROM contestants c
WHERE c.giveaway_id = g.id AND winner = 1) as winners
FROM giveaways g
having winners = 0
现在这将返回多行,我想得到行数。我尝试在winners子查询周围 Package count(),但没有成功。
在上述示例中,将返回:
Results
| winners |
|---------|
| 0 |
| 0 |
我只想数到2行。
更好的方法是什么?谢谢
1条答案
按热度按时间yb3bgrhw1#
我想知道没有赢家的赠品的数量。
使用
NOT EXISTS
使用相关子查询:子查询确保每个赠品都没有获胜的参赛者。