如何在 CodeIgniter 中使用 Active Record 类从多个表中获取数据

a7o*_*ton 0 activerecord codeigniter

我正在尝试学习如何从多个表中提取数据并将它们放入一个变量中并将它们返回给我的控制器。

我可以从这样的一张表中获取信息:

            $this->db->select('first_name, last_name');
            $this->db->from('people');
            $this->db->where('first_name', $firstname);
            $this->db->where('last_name', $lastname);
            $result = $this->db->get();
Run Code Online (Sandbox Code Playgroud)

但我对如何从另一个表中获取数据并将它们与包含更多用户输入的其他变量进行匹配感到困惑。

我已经阅读了 CI 网站上的 Active Record 文档,但我发现唯一可能是我正在寻找的内容是 join() 查询,但我不知道如何使用它,这个例子没有帮助在网站上,因为我不明白这一点:

$this->db->join('comments', 'comments.id = blogs.id');
Run Code Online (Sandbox Code Playgroud)

“评论”是否意味着表格“评论”?如果您将一个变量与 comments.id 进行比较,您是否必须像这样在单引号之外包含该变量:'comments.id =' $blogid

或者我可以这样做:从一张表中查询并将这些结果放入一个变量中,如下所示:

$result1 = $this->db->get();
Run Code Online (Sandbox Code Playgroud)

然后再次从另一个表中进行另一个查询并将其放入

$result2
Run Code Online (Sandbox Code Playgroud)

那我可以说: $query = $result1 + $result2;

那可能吗?

如果有人可以确认此信息/帮助我,我将不胜感激。谢谢

Sac*_*sad 5

如果您在使用活动记录加入时遇到问题,您可以通过以下方式使用简单的 MySQL 查询:

$query_str = "SELECT user.*,role.*  FROM user ,role  where role.id = user.role_id and  user.username = ? AND user.password = ?";
$result = $this->db->query($query_str,array($username,$password));
Run Code Online (Sandbox Code Playgroud)

您的代码: $this->db->join('comments', 'comments.id = blogs.id');表示从评论和博客表中获取数据,其中评论表 ID 等于博客表 ID。

我上述查询的活动记录也将是:

  $this->db->select('user.*,role.*')
  $this->db->from('user');
  $this->db->where('user.username', $username);
  $this->db->where('user.password', $password);
  $this->db->join('role','role.id = user.role_id')
  $result = $this->db->get();
Run Code Online (Sandbox Code Playgroud)

您需要确保两个表是相关的。