Codeigniter活动记录 - 返回另一个表中的行匹配标准的结果

时间:2015-01-23 15:38:40

标签: php mysql sql codeigniter activerecord

我已经打破了编码,不幸的是在这里画了一个空白。我正在运行下面的查询,然后处理数据以过滤唯一用户ID,但由于join命令,它会提取太多信息。 我不需要“用户”提供的数据。我的查询结果中的表,只是来自链接帐户表的数据,但user.suspended_by(在用户表中)为NULL。

$this->db
  ->select('*')
  ->from('linked_accounts')
  ->where('primary_user_id', $primary_user_id)
  ->join('user', 'user.id = linked_accounts.linked_account1_user_id')
  ->where('user.suspended_by', NULL);

$query = $this->db->get();

return $query->result();

如何重写此查询?

答案:我解决了这个问题,通过添加

来消除不必要的信息
 ->group_by('linked_account1_user_id')

这使得对数据的后处理更加快速,因为返回的数据量要小得多。

1 个答案:

答案 0 :(得分:0)

您正在使用$this->db->select('*') “*”用于获取连接中包含的所有表中的所有记录,在您的方案中,您使用的是“*”而不是您可以使用

$columns = array('linked_accounts.*');
$this->db->select($columns)