0

データベースからカテゴリを一覧表示しているときに問題が発生しました。

まず、「ビデオ」というテーブルがあり、そこにsomビデオ(v_name、v_description、category_nameなどの情報)が格納されています。

「Categories」と呼ばれる2番目のテーブルには、カテゴリ(c_nameやc_descriptionなどの情報)が格納されています。

OFC私はすべてのテーブルにIDを持っています:)

しかし今、私はカテゴリーをリストしたいと思います、そして同じクエリですべてのカテゴリーのすべてのビデオアイテムを数えます。

これはコードであり、現在モデルで行う方法と、後でビューファイルに数値を表示する方法がわからないので、助けてください!

お時間を割いてご支援いただきありがとうございます:D

    $this->db->select('c.*');
    $this->db->from('categories as c');
    $this->db->join('videos as v', 'c.c_name = v.v_category', 'right');
    return $this->db->get()->result_array();
4

1 に答える 1

2

コードを機能させるには、次の2つの変更が必要です。

  • 最初に参加するタイプは「左参加」である必要があります。それよりも、カテゴリにまだ動画がない場合でも、カウント結果(0)が得られます。
  • 次に、集計関数count()を使用できるように、結果をグループ化する必要があります。

これで試してください:

$this->db
->select('categories.c_name, COUNT(videos.id) as num_videos')
->from('categories')
->join('videos', 'categories.c_name = videos.v_category', 'left')
->group_by('categories.c_name');

また、DB設計を再検討する必要があります。両方のテーブルにid列がある場合(主キーであると想定します)、名前ではなくid列を使用してテーブル(外部キー)間の関係を定義する必要があります。

于 2013-03-20T17:35:34.317 に答える