having子句中的MySQL未知列

标签 mysql sql

我正在尝试获得每个团队的所有胜利,但是,SQL 决定抛出一个错误

enter image description here

正在执行以下查询:

SELECT `t`.`teamcode`, COUNT(*) AS `gewonnen`
FROM `Team` `t`
INNER JOIN `Wedstrijd` `w` ON `w`.`teamthuis` = `t`.`teamcode`
GROUP BY `w`.`teamthuis`
HAVING `w`.`scorethuis` > `w`.`scoreuit`

#1054 - Unknown column 'w.scorethuis' in 'having clause'

没有别名:

SELECT `Team`.`teamcode`, COUNT(*) AS `gewonnen`
FROM `Team`
INNER JOIN `Wedstrijd` ON `Wedstrijd`.`teamthuis` = `Team`.`teamcode`
GROUP BY `Wedstrijd`.`teamthuis`
HAVING `Wedstrijd`.`scorethuis` > `Wedstrijd`.`scoreuit`

#1054 - Unknown column 'Wedstrijd.scorethuis' in 'having clause'

最佳答案

不需要使用HAVING。尝试使用 WHERE 代替:

SELECT `t`.`teamcode`, COUNT(*) AS `gewonnen`
FROM `Team` `t`
INNER JOIN `Wedstrijd` `w` ON `w`.`teamthuis` = `t`.`teamcode`
WHERE `w`.`scorethuis` > `w`.`scoreuit`
GROUP BY `w`.`teamthuis`

关于having子句中的MySQL未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20595705/

相关文章:

mysql - 返回某一列中具有相同值但另一列中具有不同值的行

mysql - 一次触发多个操作,不起作用

mysql - SQL - 按与 NOW() 的升序日期差排序

php - 在 Laravel 中基于外键搜索

mysql - 查看 24 小时内的时间戳差异输出

mysql - 从perl将阿拉伯语插入mysql

sql - 如何在与子查询的连接中使用连接表中的列

php - 根据时区计算自数据进入数据库以来的时间

php - Mysql 左连接问题与 3 个表不返回第一个表中的所有行

php - 插入(连接两个表)到不同的表中