在codeigniter中组合2个sql查询

时间:2015-08-04 07:25:45

标签: php mysql sql codeigniter model-view-controller

我有两张桌子。 voting_ipcountry。我想从country表中检索结果open_id_fk表的voting_ip外键)等于open_id主键<{1}}表的)。如何编写sql查询来组合这些查询并返回结果。我在codeigniter模型中使用以下代码来检索country表中open_id_fk的出现次数。

voting_ip

2 个答案:

答案 0 :(得分:1)

使用连接语句:

$query = $this->db->select('v.open_id_fk, COUNT(v.*) AS total, c.country_name')
            ->join('country AS c', 'c.open_id = v.open_id_fk')
            ->from('voting_ip AS v')
            ->group_by('v.open_id_fk')
            ->order_by('total', 'DESC')
            ->limit(5);

应该工作,我把'country_name'因为我不知道你的桌子。

答案 1 :(得分:1)

将其更改为以下内容。

  public function mostvotedans()
{
  $this->db->select('c.open_id,COUNT(ip.open_id_fk) as total')->from('voting_ip ip');
  $this->db->join('country c','c.open_id=ip.open_id_fk');
  $this->db->group_by('ip.open_id_fk'); 
  $this->db->order_by('total', 'desc'); 
  $this->db->limit(5);
 $query = $this->db->get();
 return $query;


}