Mysql查询 - 带有子查询结果的where子句

标签 mysql

我对这个查询感到非常沮丧,我已经解决了好几个小时:(

SELECT m_order.id,       
 (SELECT SUM(price*amount) FROM m_order_item as item WHERE item.id_order = m_order.id) AS total
FROM `m_order` 
WHERE total > 100

它不断返回Unknown column 'total' in 'where clause',但结果没有这个问题 where clause column with name "total"is completely ok and calculated.

感谢您的帮助。

最佳答案

您不能在 WHERE 子句中使用别名。查看manual .将其放入 HAVING 中:

SELECT m_order.id,       
 (SELECT SUM(price*amount) FROM m_order_item as item WHERE item.id_order = m_order.id) AS total
FROM `m_order` 
HAVING total > 100

关于Mysql查询 - 带有子查询结果的where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52005579/

相关文章:

MySQL:查询并连接两个表

mysql - Microsoft SQL Operations Studio 可以在Mac 上访问MYSQL 数据库吗?

sql - groupby 和 count 如何在 sql 中工作

php - 为什么 simple_html_dom 不能处理存储在数据库中的 html?

运行 INSERT 时 PHP mysql 错误

mysql - mysql中如何在范围查询中使用复合索引

php - 检查 MySQL 表是否存在,如果不存在则创建它们

php - Doctrine_RawSql 自定义选择

mysql - 将 XML 导入 Mysql 参数存储过程

Mysql索引不工作