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

时间:2018-11-20 11:20:35

标签: php mysql codeigniter mysqli codeigniter-3

以下是我的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查询有什么问题?

2 个答案:

答案 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');
  • 这已包含在您的JOIN语句中。

来源: http://www.bsourcecode.com/codeigniter/codeigniter-join-query/#left-joinhttps://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”之前的第二个逗号(,)之前指定。

希望这会有所帮助。我知道这有没有帮助