mysql - 'where clause' 中的未知列 - 在 WHERE 中使用 ALL 运算符时

标签 mysql sql database

我有以下查询:

select tem.TEMAT, pra.NR_PRAC 
from tematy tem, pracownicy pra, wyplaty wyp 
where pra.NR_PRAC = wyp.NR_PRAC 
    and wyp.NR_TEM = tem.NR_TEM 
group by tem.TEMAT, pra.NR_PRAC 
having sum(wyp.KWOTA)>=ALL(
    select sum(w.kwota)
    from wyplaty w, pracownicy p
    where w.NR_TEM=tem.NR_TEM and p.NR_PRAC=w.NR_PRAC )

这是行不通的。

错误:

SQL Error (1054): Unknown column 'uczelnia.tem.NR_TEM' in 'where clause'

看来我不能在嵌套查询中使用 tem.NR_TEM

最佳答案

你不能使用它,因为它是按部分分组的......尝试以这种方式排列它:

select tem.TEMAT, pra.NR_PRAC,
(select sum(w.kwota) from wyplaty w, pracownicy p where w.NR_TEM=tem.NR_TEM and p.NR_PRAC=w.NR_PRAC) AS irs
 from tematy tem, pracownicy pra, wyplaty wyp where pra.NR_PRAC = wyp.NR_PRAC and wyp.NR_TEM = tem.NR_TEM group by tem.TEMAT, pra.NR_PRAC having sum(wyp.KWOTA)>=ALL(irs)

将子查询放在外部查询的选择列表中应该可以解决问题。

关于mysql - 'where clause' 中的未知列 - 在 WHERE 中使用 ALL 运算符时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24230397/

相关文章:

php - 确定邮政编码邻近度/范围的 MySQL 函数

mysql - TYPO3 - MySQL - 结合 INSERT 和 SELECT

sql - 复制行并更改 1 个值?

mysql - 在时间序列数据表中添加缺失的日期记录

mysql - 获取 Mysql 数据库中表的标识

来自 cpanel 的 PhpMyAdmin 连接使用自定义用户

php - 在Mysql中查询7/14/21/28...天前的记录

php - MySql 查询以在 Chartjs 中显示数据

mysql - 铁路服务器错误? ( rails 3)在 Windows 中

mysql - 删除带有外键的列