将查询与 codeigniter 模型连接起来

发布于 2025-01-09 10:49:12 字数 835 浏览 0 评论 0原文

请帮助我如何才能仅在 events.activity_id = response.activity_id 处获得响应?这是我的 CI_model

public function get_response(){
   
    $this->db->select('*');
    $this->db->from('response');
     $id = $this->session->userdata('id');
   $this->db->where_in('response.user_id', $id);
   $this->db->join('activities', 'response.activity_id = activities.activity_id');
     $this->db->join('users', 'users.id = response.user_id');
     
    $result = $this->db->get()->result_array();
    return $result;
}

我的活动表

我的回复表

我的用户表

Please help me how can I get only response where activities.activity_id = response.activity_id? here is my CI_model

public function get_response(){
   
    $this->db->select('*');
    $this->db->from('response');
     $id = $this->session->userdata('id');
   $this->db->where_in('response.user_id', $id);
   $this->db->join('activities', 'response.activity_id = activities.activity_id');
     $this->db->join('users', 'users.id = response.user_id');
     
    $result = $this->db->get()->result_array();
    return $result;
}

My Activities table

My Response Table

My users table

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尘世孤行 2025-01-16 10:49:12

尝试这样做:

$id = $this->session->userdata('id');

$this->db->select('a.*, b.*, c.*');
$this->db->join('activities b', 'a.activity_id = b.activity_id');
$this->db->join('users c', 'c.id = a.user_id');
$this->db->where_in('a.user_id', $id);

$result = $this->db->get('response a')->result_array();

return $result;

您需要向表添加别名,以便构建更加简化和有序的查询,在本例中,别名是 a、b 和 c。

更新:我修复了复制代码时错误编写的 get 方法。

检查此处共享的查询片段:
https://extendsclass.com/mysql/526c246

希望对您有所帮助

Try with this:

$id = $this->session->userdata('id');

$this->db->select('a.*, b.*, c.*');
$this->db->join('activities b', 'a.activity_id = b.activity_id');
$this->db->join('users c', 'c.id = a.user_id');
$this->db->where_in('a.user_id', $id);

$result = $this->db->get('response a')->result_array();

return $result;

You need to add aliases to the tables in order to build a more simplified and ordered query, in this case the aliases are a, b and c.

UPDATE: I fix a get method incorrectly writed when copy your code.

Check the query snippet shared here:
https://extendsclass.com/mysql/526c246

I hope to be helpful

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文