Joh*_*ell 2 mysql sql subquery conditional-statements
这是我正在尝试执行的查询,它应该返回一个包含未满的池数据的表(members_nr <members_max).
SELECT id, name,
(
SELECT COUNT(*) FROM pools_entries WHERE pool_id=p.id AND pending=0
) AS members_nr,
members_max, open
FROM pools p
WHERE id IN(1,2,3,4) AND members_nr < members_max;
Run Code Online (Sandbox Code Playgroud)
问题是MySQL不会将members_nr识别为字段,因为它是子查询的结果.这个小问题有逻辑解决方案吗?
任何帮助都感激不尽 :)
NB是正确的,你需要有条款.但是为了谷歌的缘故,我会分享一些知识.
WHERE子句用于将结果集限制为特定记录,它还用于优化.Mysql使用WHERE子句来标识它可以用来加速查询的索引.
HAVING子句在查询结束时执行.它用于过滤记录集.因此,假设您有一个与WHERE子句匹配的数据库中的东西列表.然后,您可以使用HAVING在某些设定条件下进一步过滤该列表.
我的基本经验法则是:如果需要根据列的值进行选择,请使用WHERE,如果需要根据表中不是列的值进行选择,请使用HAVING.
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |