Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để nhận được xếp hạng trung bình trên mỗi sản phẩm bằng cách sử dụng truy vấn mã hóa?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lệnh SQL dựa trên PHP strstr hoặc LIKE

  2. Hoạt động tập hợp con MYSQL

  3. Làm cách nào để cập nhật bảng để thêm khóa chính và cập nhật tất cả các hàng hiện có với ID tăng dần?

  4. com.mysql.jdbc.PacketTooBigException

  5. Vấn đề N trên mỗi Nhóm Sql trong mysql