2012-04-07 9 views
1

から関連データを見つける: enter image description here私は次のようになります。私のmysqlデータベースの3つのテーブルあるテーブル

EDIT

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

ここで私がしようとしているのは、Bon Jovi(plsがテーブルテーブルをチェックする:メンバー)が関連付けられている名前とそのポイントを見つけることです。条件が見つかったら... table:bossの "condition_type"が1の場合、従属変数の値は右側になり、table:bossの "condition_type"が0の場合、従属変数の値は0になります。左側にある。

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

enter image description here

+0

あなたにこの記事を参照してください、これはあなたにお答えします http://stackoverflow.com/questions/10053670/how-to-inter-link-three-mysql-tables-using-codeigniter/10053734# 10053734 –

+0

Raheel、お返事ありがとうございました。あなたがそのポストで私に示したスクリプトです。これらのテーブルを正しく結合しましたが、残念ながら、私がこの記事でここで言及したことを達成するのを助けてくれません。ここで私を助けてください。 :) –

+0

あなたの質問をより明確にしてください –

答えて

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 
+0

あなたはその動作確認を確認しましたか? –

+0

私は後半の返事に非常に残念です。私は何とか私のデータベースをすべて失ってしまったので、前にあなたのスクリプトをチェックすることができませんでした。しかし、今日私はデータベースを作成してチェックし、$ condition = 1を変更した場合、 〜$条件= 0;それだけで動作します。あなたの返信と時間をもう一度おねがいします。 :) –

+0

私はあなたのホークが簡素化されていると思います。あなたは条件を提供する必要があり、それだけです。 –

関連する問題