Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać średnią ocenę na produkt za pomocą zapytania Codeigniter?

pobierz dane z tabeli oceny , używając lewego sprzężenia z wybierz dla średniej.

join() Codeigniter pozwala na wpisanie wybranej części zamiast nazwy tabeli, ale należy ją umieścić w nawiasie:

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

generuje:

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

i wyjścia zgodnie z oczekiwaniami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać zmiennych użytkownika MySQL w ADO.NET?

  2. Jak zaktualizować, jeśli istnieje, wstawić, jeśli nie (AKA upsert lub merge) w MySQL?

  3. Sortowanie/porządkowanie w MySQL

  4. MySQL UPDATE z SELECT SUM z innej tabeli

  5. Jak uzyskać sumę ilości produktów z określonej daty?