Codeigniter: столбец 'id' в предложении заказа неоднозначен - PullRequest
4 голосов
/ 14 декабря 2011

Я использую классы активной записи 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

Ответы [ 3 ]

9 голосов
/ 14 декабря 2011

Ошибка означает, что вы пытаетесь упорядочить по имени столбца, который используется более чем в одной таблице. Обновите ваш оператор order_by, указав имя таблицы, в которой есть столбец, по которому вы хотите упорядочить. Например:

$this->db->order_by('atoms.id');
3 голосов
/ 14 декабря 2011

Вы должны указать, к какой таблице этот идентификатор должен быть добавлен.

$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");
3 голосов
/ 14 декабря 2011

Похоже, что в ваших таблицах atommeta и atoms есть столбец id.Поскольку вы присоединяетесь к этим таблицам, вам необходимо указать, по какому столбцу вы хотите заказать.

Вам понадобится

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

или

$this->db->order_by("atommeta.id");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...