Mysql子查询计算(错误1054)

标签 mysql subquery mysql-error-1054

这就是我想要做的(简化查询):

SELECT
 FOO.id,
 FOO.maxTickets,
 (SELECT COUNT(*) countx FROM barfoo BAR WHERE BAR.idt = FOO.id) buyTickets,
 (FOO.maxTickets - buyTickets) leftTickets
FROM
 foobar FOO
ORDER BY
 FOO.leftTickets ASC

但是当我这样做的时候,我得到了这个消息:

   #1054 - Unknown column 'buyTickets' in 'field list'

我很困惑。请帮助我。

谢谢!

最佳答案

buyTickets 列没有在那里定义(别名而不是表列)。要么重复计数,要么使用内部查询:

SELECT
    id,
    maxTickets,
    (SELECT COUNT(*) countx FROM barfoo BAR WHERE BAR.idt = FOO.id) buyTickets,
    (FOO.maxTickets - (SELECT COUNT(*) countx FROM barfoo BAR WHERE BAR.idt = FOO.id)) leftTickets
FROM
    foobar FOO
ORDER BY
    leftTickets ASC

关于Mysql子查询计算(错误1054),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965196/

相关文章:

PHP数组变成一个字符串

mysql - 总结每周收入,包括空记录

mysql - 修改子查询中的日期会减慢执行速度

php - mySql 未知列

mysql - 错误 1054 : Unknown column in field list and where clause

MYSQL 多个 COUNT() 在单个查询中具有多个条件

mysql - rails 引擎 : Namespacing foreign key references to other models in the same engine

mysql - SQL 趋势数据

MySQL 数组 : Can this be done?

MYSQL:错误 1054 - 未知列