[英]How to join 3 tables in codeigniter
我有3张桌子:
tbl_events->主键= event_id
tbl_event_bids->(event_id在其中,没有主键)
tbl_users->主键= u_id
我想获取这些字段:
tbl_events->添加日期
tbl_events-> bid_end_date
tbl_events-> event_date
tbl_event_bids-> bid_amount
tbl_users-> u_fname
tbl_users-> u_lname
没有任何错误,但数组为空。 这段代码有什么错误吗? 请帮忙...
public function get_confirmed_events($loged_user_id){
$this->db->select(' tbl_events.event_name,
tbl_events.added_date,
tbl_events.bid_end_date,
tbl_events.event_date,
tbl_event_bids.bid_amount,
tbl_users.u_fname,
tbl_users.u_lname');
$this->db->where('tbl_events.u_id', $loged_user_id);
$this->db->where('tbl_events.closed_bid', 'N');
$this->db->where('tbl_event_bids.bid_statues', 'W');
$this->db->join('tbl_event_bids', 'tbl_events.event_id = tbl_event_bids.event_id');
$this->db->join('tbl_users', 'tbl_events.u_id = tbl_users.u_id');
$data = $this->db->get('tbl_events');
$confirmed_result = $data->result();
return $confirmed_result;
}
试试这个
public function get_confirmed_events($loged_user_id){
$this->db->select(' tbl_events.event_name,
tbl_events.added_date,
tbl_events.bid_end_date,
tbl_events.event_date,
tbl_event_bids.bid_amount,
tbl_users.u_fname,
tbl_users.u_lname');
$this->db->join('tbl_event_bids', 'tbl_events.event_id = tbl_event_bids.event_id','LEFT');
$this->db->join('tbl_users', 'tbl_events.u_id = tbl_users.u_id','LEFT');
$this->db->where('tbl_events.u_id', $loged_user_id);
$this->db->where('tbl_events.closed_bid', 'N');
$this->db->where('tbl_event_bids.bid_statues', 'W');
$data = $this->db->get('tbl_events');
$confirmed_result = $data->result();
return $confirmed_result;
}
我曾经用过LEFT JOIN
如果想与其他人加入,可以在join()
的第三个参数中指定它,还可以看到查询的样子echo $this->db->last_query();
如果使用联接,则必须对主表使用FROM
public function get_confirmed_events($loged_user_id){
$this->db->select(' tbl_events.event_name,
tbl_events.added_date,
tbl_events.bid_end_date,
tbl_events.event_date,
tbl_event_bids.bid_amount,
tbl_users.u_fname,
tbl_users.u_lname');
$this->db->from('tbl_events');
$this->db->where('tbl_events.u_id', $loged_user_id);
$this->db->where('tbl_events.closed_bid', 'N');
$this->db->where('tbl_event_bids.bid_statues', 'W');
$this->db->join('tbl_event_bids', 'tbl_events.event_id = tbl_event_bids.event_id','left');
$this->db->join('tbl_users', 'tbl_events.u_id = tbl_users.u_id','left');
$data = $this->db->get();
$confirmed_result = $data->result();
return $confirmed_result;
}
希望对您有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.