8
votes

CodeInditer: la colonne 'ID' dans la clause de commande est ambiguë

J'utilise les classes d'enregistrement actifs de CodeDigniter et je récupère une erreur en utilisant le code suivant:

Error Number: 1052

Column 'id' in order clause is ambiguous

SELECT * FROM (`atoms`) JOIN `atommeta` ON `atommeta`.`atom_id` = `atoms`.`atom_id` ORDER BY `id` LIMIT 10

Filename: /Applications/MAMP/htdocs/atom/models/atom_model.php

Line Number: 197


1 commentaires

Parce que le nom de la colonne 'id' est ambigu ... ... ... ...


3 Réponses :


15
votes

L'erreur signifie que vous essayez de commander par un nom de colonne utilisé dans plusieurs table. Mettez à jour votre Ordre_By Déclaration avec le nom de la table qui a la colonne que vous souhaitez commander par. Par exemple: xxx


3 commentaires

Laissez-le pour que d'autres qui rencontrent le même problème auront une solution :)


Je ne sais pas pourquoi les autres répondent quand il a déjà été répondu.


@Brogrammer Si vous regardez le moment où des réponses ont été postées, vous pourriez voir qu'ils sont très proches les uns des autres. Personnellement, j'ai répondu parce que j'ai eu une notification d'une réponse déjà affichée lorsque le mien était terminé et j'étais sur le point de frapper le bouton d'envoi. La réponse de NobDisd, à la place, vient exactement 15 secondes avant la mienne, on pourrait facilement dire que nous avons répondu à la fois. Donc, "pourquoi les autres répondent", a dit 9 minutes après la dernière réponse, c'est une question étrange



3
votes

On dirait qu'il y a une colonne ID dans votre atomstta et atomes tables. Parce que vous rejoignez ces tables, vous devrez spécifier la colonne que vous souhaitez commander par.

Vous voudrez xxx

ou xxx < / pré>


0 commentaires

3
votes

Vous devez spécifier quelle table qui "est" appartient à.

$this->db->order_by("atoms.id");


0 commentaires