简体   繁体   English

从sql表中查询数据,其中引用在另一个表中

[英]Query data from sql table where reference is in another table

I am using CodeIgniter and trying to query data from mysql. 我正在使用CodeIgniter并尝试从mysql查询数据。

Scenario -- Logged on user is Manager and wants to pull data for his team.. 场景-登录的用户是Manager,并希望为其团队提取数据。

Explanation -- 说明-

e_users table e_users表

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

e_details table e_details表

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

Now when user_id 1 is logged as manager, he should get data of det_id -2,3 only, 现在,当user_id 1登录为管理员时,他应该仅获得det_id -2,3的数据,

e_details table have data and i want to query only those data of users where whose manager is currently logged on. e_details表中有数据,我只想查询当前登录其经理的用户的那些数据。 Means manager will pull data of users from e_details table. 意味着管理员将从e_details表中提取用户数据。

e_details table have user_id, detail_comment, details_date... e_details表具有user_id,detail_comment,details_date ...

and e_users have user_id, manager_id , ... e_users具有user_id,manager_id,...

I tried below function, but i could not get required data 我尝试了以下功能,但无法获取所需数据

$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();
}

I think i need to join two tables and then search with common key value? 我想我需要加入两个表,然后使用通用键值进行搜索?

Thanks, 谢谢,

Well If I am getting it correct you have missed the select statement. 好吧,如果我做对了,您就错过了选择语句。 This would help you 这对你有帮助

 <?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;
    }
}
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM