5

モデルに次のクエリがあります。

  public function Games() {
    $q = $this->db->select('games.id, games.title, games.slug, games.dev_id, games.dev, games.plat_id, games.plat');
    $q = $this->db->from('games');
    $q = $this->db->join('rates', 'games.id = rates.game_id');
    $q = $this->db->select_avg('rates.rate');
    $q = $this->db->get();
    return $q->result();
}

私の目標は、 からすべてをリストし、利用可能な場合は からgames平均を取得することです。これで、両方のテーブルにある行のみが表示されます。どうすればこれを解決できますか?raterates

4

1 に答える 1

5

この命令を使用する

$this->db->select('games.id, games.title, games.slug, games.dev_id, games.dev, games.plat_id, games.plat');
$this->db->select_avg('rates.rate');
$this->db->from('games');
$this->db->join('rates', 'games.id = rates.game_id','left');
$this->db->group_by('rates.game_id');
$q = $this->db->get();

左結合は複数の結果をもたらします。avg と group by を使用すると、各レコードに対して 1 行のみをフェッチするように制限されます。

于 2012-06-28T13:42:24.517 に答える