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