我的查询是:
SELECT
offer,
(SELECT
AVG(offer)
FROM
project_bids
) as var1
FROM
`project_bids`
WHERE
offer > var1
它会导致“where子句”中出现“#1054 - 未知列'var1'”错误。任何人都可以解雇为什么会出现这个错误? (我知道工作sql但我想知道它失败的原因)
答案 0 :(得分:2)
这里提到了SELECT语句的子句的执行顺序:
除了最后一个子句“ORDER BY”之外,不能在任何子句中使用列的别名。
答案 1 :(得分:1)
您必须将“var1”移出where
并将其放入having
语句
where
语句无权访问在select语句中创建的列
答案 2 :(得分:0)
写如下:
SELECT offer,(SELECT AVG(offer)FROM project_bids)var1 FROM project_bids
WHERE offer> (SELECT AVG(offer)FROM project_bids)