我有一个有点地狱般的查询(遗留数据库),这使我找不到"列未找到"错误。它看起来像这样(非常简化):
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的默认值?我在这里缺少什么?
答案 0 :(得分:1)
您可以在此查询中为每个表使用别名吗?并且不要忘记在每列之前插入别名字母。 示例:强>
选择r.somecolumn作为名称,
...
,(从表中选择sum(s.someothercolumn)为s,其中s.somecolumn = r.name)
来自表r
其中(r.conditions)
答案 1 :(得分:0)
如果您的服务器中有mysql 5.7.9,则必须知道该版本中存在错误 尝试使用mysql 5.7.11来解决这个问题。