【发布时间】:2019-01-15 09:20:43
【问题描述】:
我有一个查询应该计算我所有指定的行。这是我的查询:
SELECT COUNT(*) AS Som
FROM users
RIGHT JOIN stoftesten ON users.username = stoftesten.gebruikersid
RIGHT JOIN eindgesprekken ON users.username = eindgesprekken.gebruikersid
RIGHT JOIN rapportages ON users.username = rapportages.gebruikersid
WHERE users.rol = 'geleider' and users.basis = '1' and stoftesten.status = 'Niet beoordeeld' or eindgesprekken.status = 'Niet beoordeeld' or rapportages.status = 'Niet beoordeeld';
我应该得到数字 2,因为根据我想要的查询,这就是我拥有的记录数量,但它给了我 40。我在这里做错了什么?
表格:
用户
-------------------------------------------
| username (PK) | basis | rol | name |
-------------------------------------------
| user01 | VLB | geleider | Ben |
| user02 | GER | geleider | Tom |
-------------------------------------------
stoftesten
-------------------------------------------
| id (PK) | gebruikersid (FK:id) | status |
-------------------------------------------
| 1 | user01 | Niet beoordeeld |
| 2 | user01 | Beoordeeld |
-------------------------------------------
报告
-------------------------------------------
| id (PK) | gebruikersid (FK:id) | status |
-------------------------------------------
| 1 | user01 | Beoordeeld |
| 2 | user01 | Beoordeeld |
-------------------------------------------
eindgesprekken
-------------------------------------------
| id (PK) | gebruikersid (FK:id) | status |
-------------------------------------------
| 1 | user01 | Niet beoordeeld |
| 2 | user01 | Beoordeeld |
-------------------------------------------
我希望查询从“stoftesten”、“eindgesprekken”和“rapportages”中选择状态为“Niet beoordeeld”且用户基础为“VLB”的记录。然后我想计算这些行并得到一个数字。在这种情况下,我想查看数字 2。
【问题讨论】:
-
分享样本数据及其输出
-
也许你应该为你的
and/or组合使用括号。see here for examples of precedence -
您能否从该样本数据中展示您的预期结果,以及如何获得该结果的逻辑?
-
这并没有改变结果
-
我刚刚将它添加到问题中