/ / Colonne inconnue dans la clause where après le changement de serveur - mysql, sous-requête, mysql-5.6, mysql-5.7

Colonne inconnue dans la clause where après le changement de serveur - mysql, subquery, mysql-5.6, mysql-5.7

J'ai une requête quelque peu infernale (base de données existante) qui me génère une erreur "colonne introuvable". Cela ressemble à ceci (TRÈS simplifié):

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

La chose étrange à ce sujet est que cela a commencése passe que lorsque nous avons changé le serveur. Avant de déplacer notre base de données, tout fonctionnait correctement avec la requête. L'ancienne version de MySQL était 5.6.14. Le nouveau serveur exécute 5.7.9.

Est-ce un problème avec la version de MySQL? Est-ce probablement un paramètre qui a changé sa valeur par défaut pour 5.7? Qu'est-ce que j'oublie ici?

Réponses:

1 pour la réponse № 1

Pourriez-vous s'il vous plaît utiliser un alias pour chaque table dans cette requête? et n'oubliez pas d'insérer la lettre d'alias avant chaque colonne. Exemple:

sélectionnez r.somecolumn comme nom,

...

, (sélectionnez sum (s.someothercolumn) dans la table comme s où s.somecolumn = r.name)

de la table r

où (r.conditions)


0 pour la réponse № 2

si vous avez mysql 5.7.9 sur votre serveur, vous devez savoir qu’il ya un bogue dans cette version essayez d'utiliser mysql 5.7.11 pour résoudre ce problème.