我想知道是否有办法让这项工作成功。我正在推导出一个表“WHERE lie_start='green'”(以及一些我不想重复的其他条件),需要从中获取数字(和其他一些信息)。 此外,我需要带有附加条件 lie_finish='holed' 的条目数。目前我遇到错误:表 mydb.x 不存在。
SELECT
COUNT(*) AS total,
(SELECT COUNT(*) FROM x WHERE lie_finish='holed') as holed
FROM (SELECT * FROM mydb.strokes WHERE lie_start='green') as x
最佳答案
您需要重复表名。表别名无法识别:
SELECT COUNT(*) AS total,
(SELECT COUNT(*) FROM mydb.strokes WHERE lie_finish='holed') as holed
FROM (SELECT * FROM mydb.strokes WHERE lie_start='green') as x;
然而,这可以更简单地写成:
select count(*) as total, sum(lie_finish = 'holed') as holed
from mydb.strokes s
where lie_start = 'green';
关于mysql - select 语句中的子查询找不到派生表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40204007/