以下是我的mysql查询:
VMName,Total Storage (GB),Date
MAILSERVER01,600,2018-06-01
MAILSERVER01,600,2018-06-02
MAILSERVER01,610,2018-06-03
如何使用查询生成器将其转换为codeigniter?
select * from db_posts LEFT JOIN db_followers ON db_posts_user_id = db_followers_following AND db_followers_user_id = 276
当我使用mysql查询时,我得到了所需的结果。但是当我使用codeigniter查询时,我得到一个空白数组。我的CI查询有什么问题?
答案 0 :(得分:3)
尝试添加“左”选项以告诉它执行哪种连接:
$this->db->join('db_followers', 'db_followers.db_followers_following = db_posts.db_posts_user_id', 'Left');
我不确定您是否需要
$this->db->where('db_posts_user_id', 'db_followers_following');
来源: http://www.bsourcecode.com/codeigniter/codeigniter-join-query/#left-join和https://www.codeigniter.com/userguide3/database/query_builder.html
答案 1 :(得分:3)
您为什么使用那些where子句?如果您将其用作“加入”过程的条件,请尝试如下操作:
$this->db->order_by('db_posts.db_posts_id', 'DESC');
$this->db->join('db_followers', 'db_followers.db_followers_following = db_posts.db_posts_user_id and db_followers_user_id = 276', 'left');
$query2 = $this->db->get('db_posts')->result_array();
要注意的点
1)如先前的评论所述,如果要从“ db_posts”获取所有帖子,则应“左加入”。
2)您可以使用和在''中在ON子句中添加多个条件。您的所有条件都应在提及“ LEFT”之前的第二个逗号(,)之前指定。
希望这会有所帮助。我知道这有没有帮助