这就是我想要做的(简化查询):
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/