Я использую классы Active Record CodeIgniter, и я получаю ошибку, используя следующий код:
$this->db->select("*"); $this->db->order_by("id"); $this->db->limit($limit, $offset); $this->db->from("atoms"); $this->db->join("atommeta", "atommeta.atom_id = atoms.atom_id"); $query = $this->db->get();
Он производит эту ошибку:
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
Строка 197: $query = $this->db->get();
Есть идеи о том, почему? Кажется, что-то связано с order_by
Ошибка означает, что вы пытаетесь заказать по имени столбца, которое используется в нескольких таблицах. Обновите инструкцию order_by
с именем таблицы, в которой есть столбец, который вы хотите заказать. Например:
$this->db->order_by('atoms.id');
Похоже, что есть столбец id
в обеих atommeta
и atoms
. Поскольку вы присоединяетесь к этим таблицам, вам нужно указать, какой столбец вы хотите заказать.
Ты захочешь
$this->db->order_by("atoms.id");
или
$this->db->order_by("atommeta.id");
Вы должны указать, к какой таблице относится идентификатор.
$this->db->select("*"); $this->db->from("atoms"); $this->db->join("atommeta", "atommeta.atom_id = atoms.atom_id");
Выбери один:
$this->db->order_by("atommeta.id");
или
$this->db->order_by("atoms.id");