[英]CodeIgniter - Group by with order by not working as expected
所以我得到了這個查詢:
$CI->db->where('user_id', $CI->session->userdata('user_id'));
$CI->db->where('amount >', 0);
$CI->db->order_by('ur_time', 'desc');
$CI->db->group_by('resource_id');
$query = $CI->db->get('users_resources');
$resources = $query->result();
我的問題是:order_by'ur_time'並沒有真正起作用。 如果我有2行,其中一行的金額為10000和ur_time 1384303464,另一行的金額為100和ur_time 1384304656我仍然會得到該行,金額為10000。
我究竟做錯了什么?
編輯:也許我必須解釋一下。 假設我有一些行:
ur_id | ur_time | user_id | resource_id | amount
1 | 1384304656 | 1 | 1 | 100
2 | 1384303464 | 1 | 1 | 10000
3 | 1384303464 | 1 | 2 | 200
4 | 1384304656 | 1 | 2 | 20000
我想在這里得到的結果是:兩行,一個具有ur_id 1,另一個具有ur_id 4,因為對於每個resource_id,我都希望具有ur_time最高的行。 我希望現在很清楚。
PS:我需要數量> 0子句,因為可能會有負數,但我不希望它們出現在結果中。
嘗試在查詢中添加此內容,看看它們是否會合並到您的select語句中
$CI->db->select('*');
$CI->db->select_max('ur_time' , 'max_ur_time'); // this will produce max(ur_time) as max_ur_time
$CI->db->where('user_id', $CI->session->userdata('user_id'));
$CI->db->where('amount >', 0);
$CI->db->order_by('ur_time', 'desc');
$CI->db->group_by('resource_id');
$query = $CI->db->get('users_resources');
$resources = $query->result();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.