Mysql codeigniter活动记录是否加入使用?

Mysql codeigniter活动记录是否加入使用?,mysql,codeigniter,activerecord,Mysql,Codeigniter,Activerecord,我想写这个查询: SELECT u.userId, uil.interestId, url.regionId FROM users u JOIN userInterestLink uil USING (userId) JOIN userRegionLink url USING (userId) JOIN dealInterestLink dil USING (interestId) JOIN dealRegionLink drl USING (regionId, dealId)

我想写这个查询:

SELECT u.userId, uil.interestId, url.regionId FROM users u 
  JOIN userInterestLink uil USING (userId)
  JOIN userRegionLink url USING (userId)
  JOIN dealInterestLink dil USING (interestId)
  JOIN dealRegionLink drl USING (regionId, dealId)
WHERE dealId = 1

使用CodeIgniter活动记录类,但是我不知道如何执行
连接。。。使用

没有内置的对
加入的支持。。。在活动记录类中使用
。您的最佳选择可能是将
join()
函数更改为如下所示(如果您不知道,该文件为
system/database/DB\u active\u rec.php

因此,您只需在代码中使用它
join('table','USING('something'))

尽管如此,您可能希望扩展该类而不是修改它,这样在升级CI时就不需要反复执行相同的操作。 看看这个或者(或者搜索谷歌)如果你想这样做的话

或者,如果您不想遇到所有这些麻烦,您可以编写一个简单的helper函数来完成同样的任务

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

function join_using($table, $key) 
{
    $CI = get_instance();
    $join = 'JOIN '. $table .' USING (`'. $key .'`)';
    return $CI->db->ar_join[] = $join;
}  
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

function join_using($table, $key) 
{
    $CI = get_instance();
    $join = 'JOIN '. $table .' USING (`'. $key .'`)';
    return $CI->db->ar_join[] = $join;
}  
// $something1 and $something2 will produce the same result.
$something1 = $this->db->join('join_table', 'join_table.id = table.id')->get('table')->result();
print_r($something1);
join_using('join_table', 'id');
$something2 = $this->db->get('table')->result();
print_r($something2);