加入查询codeigniter,其中condition返回所有行

时间:2016-03-21 14:59:06

标签: php mysql codeigniter

这是我从两个表中获取数据的连接查询。

$this->db->select('*');
$this->db->from('george_hotel_bkd_customers');
$this->db->where('george_hotel_bookings.bookingref',$ref);
$this->db->join('george_hotel_bookings', 'george_hotel_bookings.user_id = george_hotel_bkd_customers.user_id');    
$query = $this->db->get();

根据我的where条件,它只返回一行,但它将返回匹配连接条件的所有行。

好像我在这里没有执行条件。

请帮帮我

2 个答案:

答案 0 :(得分:0)

$ ref =有多少结果应该大致上升? 当你省略哪里时你会得到什么?如果你得到完整的结果,那么必须是$ ref值的问题,或者,这就是结果。

只是一个注释,你不需要选择(*),这是默认的,如果这只是为了举个例子,抱歉收拾。您还可以将 - >从(whaterver_table)添加到 - > get(whatever_table)无论如何您需要添加 - > gt; get(),所以为什么不删除 - > from()行,只需选择可读性,但我没有意识到你可以暂时这样做,所以我想把它添加到我的答案中。

或者另一个问题解决路径是连接是否应该被“左”作为第3个arg。 IE总是有加入吗?

如Anant建议的那样,改变声明中的位置或连接不会有任何区别

答案 1 :(得分:0)

$this->db->select('*');
$this->db->from('george_hotel_bkd_customers');
$this->db->join('george_hotel_bookings', 'george_hotel_bookings.user_id = george_hotel_bkd_customers.user_id');
$this->db->where('george_hotel_bookings.bookingref',$ref);
$query = $this->db->get();

总是在哪里