我的表格(结构,表面)有两个索引行,“planet_id”和“tile_id”。我想加入他们,但是我得到了一个SQL-Error:“where'collection_id'在where子句中是不明确的。”
$this->db ->select('*')
->from('structures')
->join('surface', 'structures.planet_id=surface.planet_id AND structures.tile_id=surface.tile_id')
->where('planet_id', $p->planet_id);
$query = $this->db->get();
导致:
Error Number: 1052
Column 'planet_id' in where clause is ambiguous
SELECT * FROM (`structures`) JOIN `surface` ON `structures`.`planet_id`=`surface`.`planet_id` AND structures.tile_id=surface.tile_id WHERE `planet_id` = '13247'
答案 0 :(得分:2)
由于您在两个表格中有planet_id
,因此您需要选择要应用where
的内容。
所以,试试这个:
$this->db->select('*')
->from('structures')
->join('surface', 'structures.planet_id=surface.planet_id AND structures.tile_id=surface.tile_id')
->where('structures.planet_id', $p->planet_id);
$query = $this->db->get();
这可能看起来很愚蠢,因为您的加入要求planet_id
两个都相同,但where
不知道,并且需要特定说明。