作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以我选择了一个名称和与该名称相关的一些运动,我只需要在该运动数大于 1 时选择它们。
SELECT DISTINCT name AS FullName,
(SELECT COUNT(id) FROM coaches WHERE coaches.name=FullName) AS NrOfSports
FROM coaches WHERE NrOfSports>1
如果 WHERE
被删除,查询工作正常并显示所有行,其中有些行只有“1”作为 NrOfSports。当我将它添加到 WHERE
子句时,我收到一个错误,因为它无法被识别。这让我感到困惑,因为如果我在另一个 SELECT
列中使用它,它会正常工作。
有没有办法做到这一点?它不能依赖于软件。
最佳答案
使用 Group By
和 Having
代替:
SELECT name AS FullName,
COUNT(id) AS NrOfSports
FROM coaches
GROUP BY name
HAVING COUNT(id) > 1
您的相关查询可以工作,您只需将其移动到子查询,然后您可以添加 where
条件。但是,我相信 group by
会更快。
关于mysql - 在 WHERE 中使用来自 SELECT 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34476196/
我是一名优秀的程序员,十分优秀!