lấy dữ liệu từ bảng xếp hạng , sử dụng kết hợp bên trái với lựa chọn cho mức trung bình.
hàm join () của Codeigniter cho phép bạn viết một phần được chọn thay vì tên bảng, nhưng bạn cần đặt nó trong dấu ngoặc đơn:
$this->db->select('t1.*, t2.avg_rating, t3.*');
$this->db->from('ratings t1');
$this->db->join('
(select product_id, avg(rating) as avg_rating
from ratings
group by product_id) t2','t2.product_id=t1.product_id','left'
);
$this->db->join('users t3','t3.id=t1.user_id','left');
$this->group_by('t1.userid')
$this->db->get()->result();
tạo ra:
SELECT t1.*, t2.avg_rating, t3.*
FROM ratings t1
left join
(select product_id, avg(rating) as avg_rating from ratings group by product_id) t2
on t2.product_id=t1.product_id
left join users t3
on t1.user_id = t3.id
group by t1.user_id
và kết quả như bạn mong đợi.