mysql - #1054 - 'general' 中的未知列 'where clause'

标签 mysql sql

我有一个我不明白的问题;为什么色谱柱不能使用?这是我的代码:

SELECT `a`.`id`, `a`.`title`, `e`.`url` as category, 
  calc_val(`a`.`value`, `c`.`prof`, `c`.`tax`) as general, 
  `a`.`date`, `a`.`url`, 
  SUM(`d`.`stock`) as stock 
FROM (`produc` as a) 
LEFT JOIN `prod_c` as b ON `a`.`id` = `b`.`p_id` 
LEFT JOIN `p_calc` as c ON `a`.`id` = `c`.`p_id` 
LEFT JOIN `p_opt` as d ON `a`.`id` = `d`.`p_id` 
LEFT JOIN `categ` as e ON `b`.`categ_id` = `e`.`id` 
LEFT JOIN `prod_aval` as `f` ON `a`.`id` = `f`.`p_id` 
WHERE `b`.`categ_id` = '1' 
  AND `a`.`active` = 'y' 
  AND `d`.`stock` >= 1 
  AND general BETWEEN '10' AND '50' 
GROUP BY `a`.`id` 
LIMIT 9

calc_val = routine:

begin
    declare value real;
    set value = v+(v*l/100);
    return value+(value*i/100);
end

最佳答案

别名不能在 WHERE 子句中使用,因此您需要包含计算:

AND calc_val(`a`.`value`, `c`.`prof`, `c`.`tax`) BETWEEN '10' AND '50'

或者,您可以使用派生表并向其应用部分或全部 WHERE 子句。如果计算成本高昂/复杂/处理器密集型,这可能很有用。

SELECT * FROM (
    SELECT `a`.`id`, `a`.`title`, `e`.`url` as category, 
      calc_val(`a`.`value`, `c`.`prof`, `c`.`tax`) as general, 
      `a`.`date`, `a`.`url`, 
      SUM(`d`.`stock`) as stock 
    FROM (`produc` as a) 
    LEFT JOIN `prod_c` as b ON `a`.`id` = `b`.`p_id` 
    LEFT JOIN `p_calc` as c ON `a`.`id` = `c`.`p_id` 
    LEFT JOIN `p_opt` as d ON `a`.`id` = `d`.`p_id` 
    LEFT JOIN `categ` as e ON `b`.`categ_id` = `e`.`id` 
    LEFT JOIN `prod_aval` as `f` ON `a`.`id` = `f`.`p_id` 
    WHERE `b`.`categ_id` = '1' 
      AND `a`.`active` = 'y' 
      AND `d`.`stock` >= 1 
    GROUP BY `a`.`id` 
    LIMIT 9
)
WHERE general BETWEEN '10' AND '50'

关于mysql - #1054 - 'general' 中的未知列 'where clause',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989517/

相关文章:

sql - 变量在 IF NOT EXISTS .. CREATE TABLE 查询中不起作用,我不知道为什么

php - 将 Mysql 时间戳中的值更新为日期时间值。

php - 在 OrderBy Eloquent 查询中获取行的排名

python - 尝试在 Python 中使用 bcp 将 CSV 上传到数据库时出现问题

mysql - 如果我们可以为唯一索引设置空值,那么查询的持续时间是否会更短?

mysql - 使用 mysql 进行 MAX 和 CONVERT

mysql - mysql 中可以在不覆盖的情况下联合吗?

java - 用于一对多关系的 JPQL

php - MySQL 数据无限滚动

php - php 中的 sql 查询