简体   繁体   English

如何使用查询生成器将mysql查询转换为codeigniter?

[英]How to convert mysql query to codeigniter using query builder?

The following is my mysql query: 以下是我的mysql查询:

select * from db_posts LEFT JOIN db_followers  ON db_posts_user_id = db_followers_following AND db_followers_user_id = 276

How can I convert it to codeigniter using query builder? 如何使用查询生成器将其转换为codeigniter?

$this->db->where('db_posts_user_id', 'db_followers_following');
$this->db->where('db_followers_user_id', 276);
$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');
$query2 = $this->db->get('db_posts')->result_array();

I get the required result when I use mysql query. 使用mysql查询时,我得到所需的结果。 But I get a blank array when I use codeigniter queries. 但是当我使用codeigniter查询时,我得到一个空白数组。 What is wrong in my CI Query? 我的CI查询有什么问题?

Try adding the "Left" option to tell it what kind of join to do: 尝试添加“左”选项以告诉它要执行哪种连接:

$this->db->join('db_followers', 'db_followers.db_followers_following = db_posts.db_posts_user_id', 'Left');

Also I'm not sure you need 我也不确定你是否需要

$this->db->where('db_posts_user_id', 'db_followers_following');
  • this is already covered by your JOIN statement. 这已经包含在您的JOIN语句中。

Source: http://www.bsourcecode.com/codeigniter/codeigniter-join-query/#left-join and https://www.codeigniter.com/userguide3/database/query_builder.html 来源: http : //www.bsourcecode.com/codeigniter/codeigniter-join-query/#left-joinhttps://www.codeigniter.com/userguide3/database/query_builder.html

why are you using those where clause? 为什么使用那些where子句? if you are using it as condition for your 'JOIN' process, try it like this: 如果您将其用作“加入”过程的条件,请尝试如下操作:

$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();

Points to Note 注意事项

1)as previous comments said, you should 'Left Join' if you want to get all posts from 'db_posts'. 1)如先前的评论所述,如果要从“ db_posts”获取所有帖子,则应“左加入”。

2) You can add Multiple conditions in ON Clause using and but within ''. 2)您可以使用和在''中在ON子句中添加多个条件。 all your conditions should be specified before second comma(,) which is before mentioning 'LEFT'. 您的所有条件都应在提及“ LEFT”之前的第二个逗号(,)之前指定。

Hope this will help. 希望这会有所帮助。 Lemme know if this help 让我知道这是否有帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM