объединение одной и той же таблицы дважды для разных столбцов

У меня есть одна табличная продукция и одна таблица. таблица продуктов имеет два столбца 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 | +-----------------------+ 

Solutions Collecting From Web of "объединение одной и той же таблицы дважды для разных столбцов"

Используйте псевдонимы. Кроме того, таблица продуктов никогда не появляется, кроме как в предложении 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");