将表1中列的值定义为表2中的值

时间:2017-09-22 21:42:17

标签: php mysql codeigniter

我有2张桌子

表1包含

 id             site
  1              A1
  2              A2
  3              B1
  4              B2

表2包含

 nesite         fesite     
  A1              A2
  B1              A1
  A2              B2

我可以将表2作为表1中的id回显吗?比如

nesite         fesite     
  1              2
  3              1
  2              4  
到目前为止,我已经尝试了一些查询,没有任何效果。这是我模特的最后一个形状。

function site(){
    $this->db->select('*');
    $this->db->from('table2');
    $this->db->join('table1','table1.site = table2.nesite OR table1.site = table2.fesite');
    $query = $this->db->get();
    return $query->result();
}  

1 个答案:

答案 0 :(得分:2)

您可以使用不同的列(如

)将table1与表b连接两次
select a1.id as nesite,
a2.id as fesite
from table2 b
join table1 a1 on (b.nesite = a1.site)
join table1 a2 on (b.fesite = a2.site)

DEMO

活动记录查询将类似于

$this->db->select('a1.id as nesite,a2.id as fesite',FALSE);
$this->db->from('table2 b');
$this->db->join('table1 a1','b.nesite = a1.site');
$this->db->join('table1 a2','b.fesite = a2.site');
$query = $this->db->get();
$query->result();