【问题标题】:Mysql Joining Four Tables After Selecting A column from another table to use as selection KeyMysql在从另一个表中选择一列以用作选择键后连接四个表
【发布时间】:2014-03-13 14:04:07
【问题描述】:

我有上面显示的数据库。 我有以下要求。 假设我必须从四个表small_text_data,big_text_data,file_data中获取所有数据,其中meta_data_id与group_meta_data中group_id = 1的meta_data_id匹配。我的意思是返回这个结果的函数的输入只是group_id。那么我应该怎么写连接查询选择特定组的所有 meta_data_id,然后从所有四个数据表中选择数据。 我尝试了一些连接查询。但它不起作用。如果我能在 Codeigniter 活动记录中获得解决方案会更好。

【问题讨论】:

    标签: php mysql codeigniter activerecord


    【解决方案1】:

    试试这个,没测试

      function get_data($id){
         $query = $this->db
        ->select('g.*, s.*, b.*, f.* ')
        ->join('small_text_data s', 's.meta_data_id=g.group_id', 'left')
        ->join('big_text_data b', 'b.meta_data_id=g.group_id', 'left')
        ->join('file_data f', 'f.meta_data_id=g.group_id', 'left')
        ->where('g.group_id', $id)
        ->get('group_meta_data g');
    
    if($query->num_rows()) {
        return $query->result();
    }
    }
    

    【讨论】:

    • 它没有返回所需的行
    • @aseferov,我相信问题是,你的 3 个连接都应该连接到 g.id,而不是 g.group_id。
    猜你喜欢
    • 2016-07-22
    • 2011-03-30
    • 1970-01-01
    • 2013-12-23
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    相关资源
    最近更新 更多