将同一张表两次连接到不同的列

Ahm*_*zar 1 php mysql join codeigniter

我有一张桌子产品和一张桌子位置。产品表具有两列pickLocation和recLocation。在位置表中,我有id和name列。pickLocation和recLocation具有位置表中的ID。我该如何在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");
Run Code Online (Sandbox Code Playgroud)

这是产品表

+----+--------------+-------------+
| Id | pickLocation | recLocation |
+----+--------------+-------------+
|  1 |           12 |          23 |
|  2 |           12 |          12 |
+----+--------------+-------------+
Run Code Online (Sandbox Code Playgroud)

这是位置表

+----+-----------+--+
| Id |   name    |  |
+----+-----------+--+
| 12 | Location1 |  |
| 23 | Location2 |  |
+----+-----------+--+
Run Code Online (Sandbox Code Playgroud)

我想要这样的结果

+-----------------------+
| 1 Location1 Location2 |
+-----------------------+
| 2 Location1 Location1 |
+-----------------------+
Run Code Online (Sandbox Code Playgroud)

Adr*_*nXL 5

使用别名。另外,除了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"); 
Run Code Online (Sandbox Code Playgroud)