J'utilise linux mint dans ma machine et j'essaie d'exécuter une requête. Après l'exécution, une erreur est affichéeRequête MySQL avec distinct et ordre en affichant l'erreur 3065 (HY000)
erreur 3065 (HY000): Expression # 1 clause ORDER BY est pas dans la liste SELECT, référence à la colonne 'shelterl_local.animal.changed' qui ne sont pas dans la liste SELECT; ce qui est incompatible avec DISTINCT
J'ai ajouté la ligne
[mysqld]
sql-mode=''
dans le fichier /etc/mysql/my.cnf
et redémarré mysql. Mais toujours obtenir la même erreur. J'ai référé beaucoup de solutions mais rien n'a fonctionné pour moi. Ma requête est
SELECT DISTINCT fs.etid AS etid FROM og_membership fs
LEFT OUTER JOIN node animal ON animal.nid = fs.etid LEFT OUTER JOIN
field_data_field_for_animal dfa ON dfa.field_for_animal_value = fs.etid
LEFT OUTER JOIN node pastid ON pastid.nid = dfa.entity_id WHERE ((fs.gid =
464) OR
(animal.nid IN
(1196113,1211208,1218831,1243640,1254254,
1253603,1249890,1261729,1261282,1258378,1273745,1270760,
1279219,1276040,1276031,1275684,1288727,1289306,1300545,
1313770,1313761,1313755,1313746,1313330,1312388,1310673,
1309431,1315024,1333640,1328041,1323565,1327216,1330104,
1327786,1326810,1335812,1333094,1341309,1340358,1348088,
1351077,1351071,318214,1342698,1472755,1491527,1351652,1353488,
1507763,1342713)))AND (fs.entity_type = 'node')
AND (animal.type = 'animal') AND (animal.status = 1) AND (pastid.title LIKE
'%A%')
ORDER BY animal.changed DESC LIMIT 0,300;
Est-il possible de supprimer définitivement cette erreur et d'exécuter la requête? S'il vous plaît aider
MySQL ne connaît pas la valeur _which_ de 'field2' à utiliser lors du tri. Vous devez nous dire comment vous voulez trier. –
@TimBiegeleisen, j'ai ajouté la requête réelle. S'il vous plaît jeter un oeil – Arun
La requête complète est en fait largement hors de propos pour votre question. Vous pouvez commenter ma réponse ci-dessous. –