【问题标题】:Subquery in select statement cant find derived table?select语句中的子查询找不到派生表?
【发布时间】:2017-03-05 09:07:24
【问题描述】:

我想知道是否有办法使这项工作。我正在导出一个表“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

【问题讨论】:

    标签: mysql sql correlated-subquery derived-table


    【解决方案1】:

    您需要重复表名。无法识别表别名:

    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';
    

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 1970-01-01
      • 2017-03-31
      • 2023-01-02
      • 1970-01-01
      • 2015-08-02
      • 2011-05-09
      • 2011-11-05
      • 2013-09-17
      相关资源
      最近更新 更多