MySQL变量/别名不可用
所以我现在要做的是根据另一个自动计算的值来选择一个值的数据集。(听起来很复杂。我想不是,我也不太懂英语) 我的SQL代码如下所示:MySQL变量/别名不可用,mysql,sql,Mysql,Sql,所以我现在要做的是根据另一个自动计算的值来选择一个值的数据集。(听起来很复杂。我想不是,我也不太懂英语) 我的SQL代码如下所示: SELECT ticket.ref_id AS id, COUNT( * ) AS reports, (COUNT(*)/post.views) AS treshold,post.views AS views FROM ticket, post WHERE ticket.ref_id = post.id AND (reports/post.views) GROUP
SELECT ticket.ref_id AS id, COUNT( * ) AS reports, (COUNT(*)/post.views) AS
treshold,post.views AS views
FROM ticket, post
WHERE ticket.ref_id = post.id AND (reports/post.views)
GROUP BY ref_id
ORDER BY views,reports DESC
问题是,当我尝试在WHERE子句中使用treshold或reports时,查询失败,并说“fieldlist”中没有这样的值。
我知道问题出在哪里,MySQL似乎不允许在where子句中使用“自定义”字段,但我确实需要它,我不知道如何解决它。仅仅使用COUNT(*)也不起作用,因为它不知道计算什么
有人能帮我解决这个问题吗?我认为这是一个非常基本的SQL,但目前我还停留在这一点上 对于不可引用的列,可以使用
HAVING
子句而不是WHERE
。它的性能不太好,但它能完成任务
HAVING从句几乎被应用
最后,就在项目发送到之前
客户端,没有优化。
(限制在使用后应用。)
HAVING子句可以指任何
选择表达式中命名的列或别名
在选择列表中或在外部
子查询,以及聚合函数
谢谢:)我一直都知道这个问题在我做的时候就简单了