gpt4 book ai didi

php - codeigniter mysql left join include select

转载 作者:行者123 更新时间:2023-11-29 02:29:26 25 4
gpt4 key购买 nike

如何将 left join include select 转换为 codeigniter sql 方法?谢谢。我只是想知道。

SELECT c1.c1_id, c1.c1_name, c2.c2_id, c2.c2_name, c2.c2_type, c2.c2_status, f.f_id, f.f_name, f2.f2_id, f2.f2_name FROM category2 c2 
LEFT JOIN category1 c1 ON c1.c1_id = c2.c1_id
LEFT JOIN (
SELECT DISTINCT c2_id, f_id, f_name FROM file ORDER BY f_id DESC
) f ON f.c2_id = c2.c2_id
LEFT JOIN (
SELECT DISTINCT c2_id, f2_id, f2_name FROM file2 ORDER BY f2_id DESC
) f2 ON f2.c2_id = c2.c2_id
WHERE c2.c2_status = 1
GROUP BY c2.c2_id

最佳答案

您可以使用 codeigniter 的子查询方式来执行此操作,为此您必须破解 codeigniter。像这样转到 system/database/DB_active_rec.php 从这些函数中删除 public 或 protected 关键字

public function _compile_select($select_override = FALSE)
public function _reset_select()

现在可用的子查询写入现在这是您的带有事件记录的查询

$select =   array('DISTINCT c2_id','f_id','f_name');
$this->db->select($select);
$this->db->from('file');
$this->db->order_by('f_id','DESC');
$subQuery1 = $this->db->_compile_select();

unset($select);

$this->db->_reset_select();

$select = array('DISTINCT c2_id','f_id','f2_name');
$this->db->select($select);
$this->db->from('file2');
$this->db->order_by('f2_id','DESC');
$subQuery2 = $this->db->_compile_select();

unset($select);

$this->db->_reset_select();

// And now your main query

$select = array(
'c1.c1_id',
'c1.c1_name',
'c2.c2_id',
'c2.c2_name',
'c2.c2_type',
'c2.c2_status',
'f.f_id',
'f.f_name',
'f2.f2_id',
'f2.f2_name'
);

$this->db->select($select);
$this->db->from('category2 c2');
$this->db->join("($subQuery1)",'f.c2_id = c2.c2_id','left');
$this->db->join("($subQuery2)",'f2.c2_id = c2.c2_id','left');
$this->db->where('c2.c2_status',1);
$this->db->group_by('c2.c2_id');
$main_query = $this->db->get();

然后事情就完成了。干杯!!!注意:在使用子查询时你必须使用

$this->db->from('myTable')

代替

$this->db->get('myTable')

运行查询。

现在,您可以检查已构建为的查询

echo $this->db->last_query();

关于php - codeigniter mysql left join include select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15400938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com