Порядок из большинства записей с SQL-соединением - PullRequest
0 голосов
/ 26 января 2011

У меня есть две таблицы MySQL ниже

tophits
идентификатор, учетная запись, время

И

topsites
id, имя, адрес электронной почты, URL

Мой идентификатор topsites равен 1 (это мой tophits.account).Я хочу выбрать имя и URL-адрес ОТ ТОП-сайтов и СЧИТАТЬ, сколько записей в тофитах для аккаунта = 1 за день.

Таким образом, все они будут отображаться, и на каком аккаунте будет наибольшее количество просмотров.вверху и т. д. и т. д.

Это для codeigniter, я пытался ..

$this->db->select('topsites.name, topsites.url, topsites.id, COUNT(tophits.account) as hit_count',FALSE);
   $this->db->from('topsites');
   $this->db->where('active', '0');
   $this->db->join('tophits', 'tophits.account = topsites.id', 'left');
   $this->db->like('tophits.time', '2011-01-25'); 
   $this->db->order_by('hit_count');
   $this->db->limit(10);

Но он печатает только одну запись, а там больше, чем одна ... Кто-нибудь знаетвопрос?

Ответы [ 3 ]

3 голосов
/ 26 января 2011

Вам нужна учетная запись GROUP BY (для отображения нескольких учетных записей), а также вам необходимо ЗАКАЗАТЬ BY "desc", чтобы сначала просмотреть большинство хитов

$this->db->select('topsites.name, topsites.url, topsites.id, COUNT(tophits.account) as hit_count',FALSE);
$this->db->from('topsites');
$this->db->where('active', '0');
$this->db->join('tophits', 'tophits.account = topsites.id', 'left');
$this->db->like('tophits.time', '2011-01-25'); 
$this->db->group_by('topsites.name, topsites.url, topsites.id');
$this->db->order_by('hit_count', 'desc');
$this->db->limit(10);
0 голосов
/ 26 января 2011

Вам необходимо использовать group by в таблице tophits:

$this->db->select('topsites.name, topsites.url, topsites.id, COUNT(tophits.account) as hit_count',FALSE);
   $this->db->from('topsites');
   $this->db->where('active', '0');
   $this->db->join('tophits', 'tophits.account = topsites.id', 'left');
   $this->db->group_by('tophits', 'id');
   $this->db->like('tophits.time', '2011-01-25'); 
   $this->db->order_by('hit_count');
   $this->db->limit(10);
0 голосов
/ 26 января 2011

добавить group by,

вы используете агрегат функция count

...