web-dev-qa-db-ja.com

Codeigniter Active Recordsで「DISTINCT」を使用する方法は?

アクティブなレコードを使用したクエリがあります。

_$this->db->select('reg.users_id,reg.registration_id,reg.device_type');
$this->db->join('users as usr','usr.users_id = reg.users_id','left');
$this->db->where('usr.users_status',1);
$this->db->where('reg.users_id',91);
$query = $this->db->get('users_gcm_registration as reg');
_

DISTINCT(registration_id)を取得したい。

どうやってやるの?

7
Saswat

Distinctを次のように使用できます

$this->db->distinct('reg.registration_id');
$this->db->select('reg.users_id,reg.device_type');
....

しかし、group_by

$this->db->select('reg.users_id,reg.registration_id,reg.device_type');
$this->db->join('users as usr','usr.users_id = reg.users_id','left');
$this->db->where('usr.users_status',1);
$this->db->where('reg.users_id',91);
$this->db->group_by('reg.registration_id');// add group_by
$query = $this->db->get('users_gcm_registration as reg');
15
Saty

$this->db->distinct();を使用するだけです。値を区別します...

それがあなたのためにうまくいくことを願っています...

3
user5139148

これを埋めるには2つの方法があります

  1. Codeigniterの方法で
  2. SQLの方法で

Codeigniter way

アクティブレコードクエリで$this->db->distinct()を使用できます。

$this->db->distinct();
$this->db->get('table_name');
...

SQLの方法で

$query = $this->db->query("SELECT DISTINCT * FROM table_name ...");
$result = $query->result_array();
return $result;
2
Abdulla Nilam
$this->db->select('reg.users_id,DISTINCT(reg.registration_id),reg.device_type'); 
   $this->db->join('users as usr','usr.users_id = reg.users_id','left');
$this->db->where('usr.users_status',1);
$this->db->where('reg.users_id',91);
$query = $this->db->get('users_gcm_registration as reg');
1
Shibon
   $query = $this->db->select('registration_id')
                ->distinct('registration_id')
                ->from('reg')
                ->get(); 
 return $query->result();
1
Avigit.M