Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите среден рейтинг за продукт с помощта на заявка за codeigniter?

вземете данни от таблицата оценки , използвайки ляво съединение с избор за средна стойност.

функцията join() на Codeigniter ви позволява да напишете избрана част вместо името на таблицата, но трябва да я поставите в скоби:

$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();

генерира:

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

и извежда, както очаквате.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кодиране на стойност-параметър за SELECT в PHP-MySQL

  2. MySQL - Класиране на месец за няколко месеца

  3. MySQL Group By и Sum общата стойност на друга колона

  4. Как да предавате екземпляр на връзка с база данни между PHP файлове, без да го декларирате отново

  5. node.js/MySQL:Някои кодировки на низове (Emoji) хвърлят грешки, когато се опитам да вмъкна в базата данни