Php 在一个函数中使用三个查询的Codeigniter

Php 在一个函数中使用三个查询的Codeigniter,php,mysql,database,codeigniter,join,Php,Mysql,Database,Codeigniter,Join,我有三张桌子 用户: 身份证 用户名 密码 第二桌 朋友 身份证 粘虫 朋友 最后一个呢 CI_会议 会话号 用户id=默认值=0 用户数据 我要密码点火器查询 select * from users where userid=$userid select * from friends where myid=$userid or friend_id=$userid select * from ci_sessions where user_id=$userid and user_da

我有三张桌子

用户:

  • 身份证
  • 用户名
  • 密码
第二桌

朋友

  • 身份证
  • 粘虫
  • 朋友
最后一个呢

CI_会议

  • 会话号
  • 用户id=默认值=0
  • 用户数据
我要密码点火器查询

select * from users where userid=$userid 
select * from friends where myid=$userid or friend_id=$userid
select * from ci_sessions where user_id=$userid and user_data!=''
返回结果()

是否有可能在一个声明中获得所有三个

我试着这样做

function check_friends($username) {
    $this->db->where('username',$username);
    $q1 = $this->db->get('users');
    $myid=$q1->row('userid');
    if($username !='' ){

        $this->db->select('*');
        $this->db->from('users');// I use aliasing make joins easier
        $this->db->where('userid',$myid);
        $this->db->join('myfriends AS friends_tpl', 'friends_tpl.myid = '.$myid.' or friends_tpl.fid='.$myid.'', 'FULL');
        $this->db->join('ci_sessions AS B', 'B.id_unite = A.userid', 'INNER');
        $this->db->where('B.user_data !=','');
        $this->db->where('B.id_unite !=','0');
        $query = $this->db->get();
        return $query->result();
    }else{

    }
}
更新

我尝试这个查询

$query = $this->db->query("select * from users as u inner join myfriends as f on f.fid = '".$this->session->userdata('userid')."' or f.myid= '".$this->session->userdata('userid')."' inner join ci_sessions as c on c.id_unite = u.userid where u.username != '$username' GROUP BY u.userid ");
但有一个问题,这个查询的结果不正确

这是friends表的值

身份证|我的身份证|朋友身份证 1 | 50 | 54 2 | 57 | 50 现在如果有三个用户登录,查询将显示用户54是用户57的朋友,我不知道w7y,你喜欢这样吗

$query = $this->db->query(  'SELECT * -----
              UNION ALL
                SELECT * -----
              UNION ALL
                SELECT *---' );

这将给出所有结果…

但结果将来自witch table?为什么不调用您的模型三次以执行您的三个问题?因为此功能将仅返回在线朋友,如果我按照您所说的那样,我将获得所有用户,不仅是我的朋友,而且是在线用户。您的联合查询有什么问题?