有关
我正在使用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');
看起来在atommeta
和atoms
表中都有一个id
列。因为要连接这些表,所以需要指定要按哪个列排序。
你需要
$this->db->order_by("atoms.id");
或
$this->db->order_by("atommeta.id");
您应该指定'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");