У меня есть одна табличная продукция и одна таблица. таблица продуктов имеет два столбца pickLocation и recLocation. в таблице местоположений у меня есть столбцы id и name. pickLocation и recLocation имеют идентификатор из таблицы местоположений. как я могу присоединиться к таблице в codeigniter.
Вот мой код
$this->db->select("locations.name as plname"); $this->db->select("locations.name as rcname"); $this->db->join("locations","locations.id=products.pickLocation","LEFT"); $this->db->join("locations","locations.id=products.recLocation","LEFT");
Вот таблица продуктов
+----+--------------+-------------+ | Id | pickLocation | recLocation | +----+--------------+-------------+ | 1 | 12 | 23 | | 2 | 12 | 12 | +----+--------------+-------------+
Вот таблица местоположений
+----+-----------+--+ | Id | name | | +----+-----------+--+ | 12 | Location1 | | | 23 | Location2 | | +----+-----------+--+
Я хочу получить результат
+-----------------------+ | 1 Location1 Location2 | +-----------------------+ | 2 Location1 Location1 | +-----------------------+
Используйте псевдонимы. Кроме того, таблица продуктов никогда не появляется, кроме как в предложении join. Он также должен быть в от.
$query = $this->db->select("p.id, l1.name as plname, l2.name as rcname") ->join("location l1", "l1.id = p.pickLocation", "left") ->join("location l2", "l2.id = p.recLocation", "left") ->get("product p");
Вы должны использовать псевдонимы, чтобы иметь возможность различать эти два объединения. Попробуйте что-то вроде этого:
$this->db->select("pickLoc.name as plname"); $this->db->select("recLoc.name as rcname"); $this->db->join("locations as pickLoc","pickLoc.id=products.pickLocation","LEFT"); $this->db->join("locations as recLoc","recLoc.id=products.recLocation","LEFT");