1

次のような mysql データベースに 3 つのテーブルがあります。 ここに画像の説明を入力

編集

テーブル「members」には、一部のメンバーの名前とコードが保持されます。テーブル「ボス」には、イベントのボスとして選ばれたメンバーの名前が含まれています。各ボスには少なくとも 1 人の部下がいます (テーブルの部下を確認してください)。

今私がやろうとしているのは、Bon Jovi (テーブル table:members を確認してください) が関連付けられている名前とそのポイントを見つけることです。条件があることがわかった場合... table:boss の「condition_type」が 1 の場合、部下の値は右側にあり、table:boss の「condition_type」が 0 の場合、部下の値は次のようになります。左側であること。

今、私が見つけようとしているのは、次のようになります。

ここに画像の説明を入力

4

1 に答える 1

2

OK私はあなたのための解決策を見つけました私は投稿しています

$condition  = 1;// Condition will be provided by you for selection. Could be zero  
$data   =   array(
        'members.name',
        'subordinates.points',
        'subordinates.event'
);

$this->db->select($data);
$this->db->join('members','members.code = subordinates.member_code','left');
$this->db->join('boss','boss.event = subordinates.event','left');
$this->db->where('boss.condition_type',$condition);
$this->db->where('boss.event    =   subordinates.event');
$this->db->get('subordinates');

また、クエリがもたらすイベントの違いを認識できるように、選択にイベントがあります。親切にテストして、問題なく動作するかどうかを確認してください。列名が少し異なる場合があります。テーブル間の関係を簡単かつ理解しやすくするために、このように使用することをお勧めします。

Table1 :  members
Columns : id , code , name
Table2 :  boss
Columns : id , event , member_code , condition_type
Table3 :  subordinates
Columns : id , boss_event , member_code , points
于 2012-04-09T06:24:07.230 に答える