2016-11-25 2 views
0

позволяет предположит, что у меня есть 6 записей в моей таблицеКак отображать последнюю уникальную запись в тузде CodeIgniter

id |  mobile_no |  date 
-------------------------------------------   
    1 |  9999999999 | 11-11-2016 

    2 |  8888888888 | 12-11-2016 

    3 |  9999999999 | 13-11-2016 

    4 |  9999999999 | 16-11-2016 

    5 |  8888888888 | 20-11-2016 

    6 |  8888888888 | 22-11-2016 

Теперь, когда я использую отчетливый с MySQL Query я получить: -

id |  mobile_no |  date 
-------------------------------------------  
    1 |  9999999999 | 11-11-2016 

    2 |  8888888888 | 12-11-2016 

Хотя я хочу получить: -

id |  mobile_no |  date 
-------------------------------------------  
    4 |  9999999999 | 16-11-2016 

    6 |  8888888888 | 22-11-2016 

Пожалуйста, помогите мне, какой запрос я должен использовать в codeigniter mysql для доступа выше записей ??

ниже моя модель запрос -

$this->db->select('*'); 

    $this->db->from('miscall_records'); 

    $this->db->distinct(); 

    $this->db->group_by('mobnos'); 

    $this->db->order_by("id", "desc"); 
+0

well - не могли бы вы ** включить ** запрос в вопрос? боюсь, я не могу телепатически отлаживать. –

+0

не как комментарий. ** отредактируйте ** ваш вопрос, чтобы включить дополнительную информацию –

+0

Не знаете, как это можно сделать на CI, но sql должен иметь шаблон, как в документе здесь http://dev.mysql.com/doc/refman/5.7/ ru/example-maximum-column-group-row.html –

ответ

-2

Вы можете использовать группу пункта для значений группы по мобильным телам. отличное ключевое слово не будет работать здесь.

0

Если вы хотите использовать набор данных с наивысшим идентификатором каждый, вы должны использовать другой подход.
вы должны выбрать самые высокие идентификаторы для каждого номера сначала через GROUP BY с соответствующей функцией агрегации MAX, а затем присоединиться к самой таблице на этих клавишах.

SELECT values.* FROM 
(SELECT MAX(id) AS id FROM miscall_records GROUP BY mobile_no) AS keys 
LEFT JOIN miscall_records AS values 
ON keys.id = values.id 
0

Ваш ожидается SQL запрос:

select a.id, a.mobile_no, a.date from miscall_records a 
where a.id = (select max(b.id) from miscall_records b 
where b.mobile_no = a.mobile_no) group by a.mobile_no 

с активными записями:

$this->db->select('a.id, a.mobile_no, a.date'); 
$this->db->from('miscall_records a'); 
$this->db->where('a.id = (select max(b.id) from miscall_records b where b.mobile_no = a.mobile_no)'); 
$this->db->group_by('a.mobile_no');  
$query = $this->db->get(); 

Или используйте только max:

select max(a.id), a.mobile_no, a.date from miscall_records a group by a.mobile_no 

Активные записи:

$this->db->select('max(a.id), a.mobile_no, a.date'); 
$this->db->from('miscall_records a'); 
$this->db->group_by('a.mobile_no');  
$query = $this->db->get();