gpt4 book ai didi

php - Codeigniter 在一个函数中使用三个查询

转载 作者:行者123 更新时间:2023-11-30 00:19:39 24 4
gpt4 key购买 nike

我有三张 table

用户:

  • ID
  • 用户名
  • 密码

第二个表

friend

  • ID
  • 我的id
  • friends_id

最后一个

CI_ session

  • session_id
  • User_id = 默认 =0
  • 用户数据

我想要 Codeignier 查询

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 ");

但是有问题,这个查询不是我想要的正确结果,

这是好友表值

id | MYID | friend ID

1 | 50 | 50 54

2 | 57 | 57 50

现在如果三个用户登录,查询将显示用户 54 是用户 57 的 friend ,我不知道 w7y

最佳答案

这样做

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

这将给出所有结果...

关于php - Codeigniter 在一个函数中使用三个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23336545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com