2016-10-24 5 views
1

私は参加したい2テーブルを持っています&は、ユーザーのロールの名前を示しています。ここcodeginiterで2つのテーブルに結合する

私の2つのテーブルは、私は、ユーザーの役割のIDを格納していusers_mlhテーブルの役割列に

user_roles_mlh & users_mlhている状況だ、user_roles_mlhは、ユーザロールの名前& IDが含まれています。私がしたいことは、自分のビューにユーザーロールの名前を表示することです。

myテーブルは次のとおりです。

Screen1

は、私は私のモデル

$this->db->select('*'); 
$this->db->from('user_roles_mlh'); 
$this->db->join('users_mlh', 'users_mlh.role = user_roles_mlh.id'); 
$this->db->where('users_mlh.role = user_roles_mlh.id'); 

$query = $this->db->get(); 

return $query->result_array(); 

でこれを試してみましたが、私は、現時点ではこの

https://s4.postimg.org/ot5nyr1hp/Untitled_122.jpg

ような何かを得る上から、それは、すべてのユーザーレベルをない示しています個々のユーザーの役割

答えて

0

ロール名を取得するために別々のクエリを記述する必要はありませんに同じロジックを使用します。ユーザーデータを取得するときにロールに参加する表。

$this->db->select('users_mlh.*,user_roles_mlh.role_type'); 
$this->db->from('users_mlh'); 
$this->db->join('user_roles_mlh', 'user_roles_mlh.id = users_mlh.role'); 

$query = $this->db->get(); 

return $query->result_array(); 

これを試してください。

+0

これは、ありがとう@ noufalcep – greenarrow

0
私はあなたのテーブルを使用する場合は

は、次のリクエストが必要です。

SELECT users_mlh.*, JOIN user_roles_mlh.role_type 
FROM users_mlh -- list all users 
    LEFT JOIN user_roles_mlh -- and joind by roles 
    ON users_mlh.role = user_roles_mlh.id -- condition for joining 

この要求には、あなたが関連付けられている役割のテキストを持つすべてのユーザーを、持っています。この要求が動作するかどうか

だから、あなたのORM

+0

ありがとうございましたあなたの助けに感謝します – greenarrow

1

ケース1:最後に、条件と特定の列のデータ

$this->db->select('user_roles_mlh.role_type,users_mlh.name'); 
    $this->db->from('users_mlh'); 
    $this->db->join('user_roles_mlh', 'user_roles_mlh.id = users_mlh.role'); 
    $this->db->where('users_mlh.id =',1); 

とは

で結果を得るどこで:あなたは直接条件

$this->db->select("*"); 
    $this->db->from('users_mlh'); 
    $this->db->join('user_roles_mlh', 'user_roles_mlh.id = users_mlh.role'); 

ケース2を使用せずに、すべてのデータをアクセスする場合

$query = $this->db->get(); 
     return $query->result();  
関連する問題