0

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

我可以从一个表中获取信息,如下所示:

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

但我很困惑如何从另一个表中获取数据并将它们与保存更多用户输入的其他变量相匹配。

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

$this->db->join('comments', 'comments.id = blogs.id');

“评论”是否意味着表格“评论”?如果您将变量与comments.id 进行比较,您是否必须将变量包括在单引号之外,如下所示:'comments.id =' $blogid

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

$result1 = $this->db->get();

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

$result2

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

那可能吗?

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

4

2 回答 2

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

您的代码: $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();

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

于 2012-12-03T20:17:40.520 回答
1

我有另一种方法来实现它,

$this->db->select('a.*,b.course_name');
$this->db->from('fees_master a,course_master b');
$this->db->where('a.course_id = b.course_id',NULL,FALSE);
$query = $this->db->get();
return $query->result_array();

我尝试了这个并且它有效,我希望这可以帮助某人。

于 2014-08-02T11:16:09.807 回答