我正在使用Codeigniter,我想要做的是返回连接表(item_gallery)的查询gallery_id是最低值。而主要查询按项目post_date的desc命令
以下代码group_by选择item_gallery gallery_id的随机值。但我想要item_gallery gallery_id的最低值。
public function shopItems($id) {
$this->db->select("*,MIN(item_gallery.gallery_id)");
$this->db->from('items');
$this->db->join('item_gallery', 'items.id = item_gallery.item_id', 'left');
$this->db->where('items.user_id', $id);
$this->db->order_by('items.post_date', 'Desc');
$this->db->group_by("item_gallery.item_id");
$query = $this->db->get();
return $query->result();
}
数据库结构
项目表
| id | slug | user_id | post_date |
| 12 | test | 111 | 12/5/2017 |
项目图库
| gallery_id | item_id | image |
| 121 | 12 | profile.png | -- i want this record selected
| 122 | 12 | gallery.png |
答案 0 :(得分:0)
你是否在连接条件内尝试了MIN内部查询?
$this->db->select("*,MIN(item_gallery.gallery_id)");
$this->db->from('items');
$this->db->join('item_gallery', 'items.id = ( SELECT MIN(item_gallery.gallery_id) id FROM item_gallery WHERE items.id = item_gallery.item_id )', 'left');
$this->db->where('items.user_id', $id);
$this->db->order_by('items.post_date', 'Desc');
$this->db->group_by("item_gallery.item_id");
$query = $this->db->get();