sql >> Databáze >  >> RDS >> Mysql

Jak získat průměrné hodnocení na produkt pomocí dotazu codeigniter?

získat data z tabulky hodnocení , pomocí levého spojení s výběrem pro průměr.

funkcejoin() of Codeigniter vám umožňuje napsat vybranou část místo názvu tabulky, ale musíte ji umístit do závorek:

$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

a výstupy, jak očekáváte.



  1. Čtení podřízeného, ​​čtení-zápis hlavního nastavení

  2. Nemohu načíst ovladač JDBC pro MySQL

  3. Bez ohledu na to nemohu dávkovat příkazy MySQL INSERT v režimu spánku

  4. SQLAlchemy - ignorování hromadného vložení:Duplicitní záznam