从另一个表中选择和排序数据

时间:2011-01-25 21:56:54

标签: php mysql codeigniter

我有两张桌子和露台。

tophits has id, account, useragent, ip referral, time

topsites has id, name, email, url, return, active

每当有人点击链接时,它都会存储在tophits表中,帐户是来自topsites的ID。

基本上我想要回应当天最热门的热门歌曲,所以我想我需要计算账号= 4的点击次数=今天按顶部排序

这是我到目前为止所拥有的

$this->db->select('name, url');
$this->db->from('topsites');
$this->db->where('active' '1');
$this->db->join('tophits', 'tophits.id = topsites.account');

(这是代码签名者)

我被困住了。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

试试这个(未经测试的)

当您连接表时,您需要在select语句中指定给定字段所属的表。 CI默认情况下也会使用反引号来保护字段名,但是如果在select / where语句中使用SQL方法,则需要提供第二个参数FALSE以防止它执行此操作,因为它可能会使您的SQL方法失真。您还需要添加另一个where语句以将其限制为今天。

$this->db->select('topsites.name, topsites.url, COUNT(tophits.id) AS hit_count',FALSE);
$this->db->from('topsites');
$this->db->where('active' '1');
$this->db->join('tophits', 'tophits.id = topsites.account');
$this->db->order_by('hit_count');    

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