查询sql表中的数据,其中引用位于另一个表中

时间:2016-11-23 09:02:44

标签: php mysql codeigniter

我正在使用CodeIgniter并尝试从mysql查询数据。

场景 - 登录用户是经理,想要为他的团队提取数据..

说明 -

e_users表

|user_id | name    | manager_id 
---------------------------------
|1       | test    | 10
|2       | another | 1
|3       | testX   | 1
|4       | testY   | 2
|5       | testX   | 2

e_details表

|det_id  | detail  | user_id 
---------------------------------
|1       | sdfs    | 1
|2       | xcffgdf | 2
|3       | sdfsd   | 3
|4       | etret   | 5
|5       | cvbcvb  | 5

现在当user_id 1被记录为管理员时,他应该只获取det_id -2,3的数据,

e_details 表中包含数据,我只想查询其管理员当前登录的用户数据。意味着经理将从 e_details 表中提取用户数据。

e_details 表包含user_id,detail_comment,details_date ......

e_users 拥有user_id,manager_id,...

我尝试了下面的功能,但我无法获得所需的数据

$user_id = $this->session->userdata('user_id')
public function get_method($user_id)
{
    $this->db->join('e_users', 'e_users.manager_id = e_details.user_id','INNER');
    $this->db->where('e_details.user_id',$user_id);
    return $this->db->get('e_details')->result_array();
}

我想我需要加入两个表然后使用公共密钥值进行搜索?

谢谢,

1 个答案:

答案 0 :(得分:2)

好吧如果我说得对,你错过了选择陈述。 这会对你有所帮助

 <?php 
        public function get_method($user_id){
    $query = $this->db->select('e_users.*, e_details.*')
            ->from('e_users')
            ->join('e_details', 'e_users.user_id = e_details.user_id', 'inner')
            ->where('e_users.manager_id',$user_id)
            ->get();
    if($query -> num_rows() > 0){
        $details_array = $query->result();
        print_r($details_array);die;
        $response['details_array'] = $details_array;
        return $response;
    }else{
        return false;
    }
}
?>