2

我有一个有点地狱般的查询(遗留数据库),它给我一个“未找到列”错误。它看起来像这样(非常简化):

select somecolumn as name,
...
...,
(select sum(someothercolumn) from table where somecolumn = name)
from table
where (conditions)

奇怪的是,它仅在我们更改服务器时才开始发生。在我们移动数据库之前,查询一切正常。旧的 MySQL 版本是 5.6.14。新服务器正在运行 5.7.9。

这是MySQL版本的问题吗?可能是某些设置更改了 5.7 的默认值吗?我在这里想念什么?

4

2 回答 2

1

您能否在此查询中为每个表使用别名?并且不要忘记在每列之前插入别名字母。 例子:

选择 r.somecolumn 作为名称,

...

,(select sum(s.someothercolumn) from table as s where s.somecolumn = r.name)

从表 r

哪里(r.conditions)

于 2015-11-09T15:35:52.030 回答
0

如果您的服务器中有 mysql 5.7.9,您必须知道该版本中存在错误尝试使用 mysql 5.7.11 来解决此问题。

于 2016-03-22T08:50:07.437 回答