sql >> Databáze >  >> RDS >> Mysql

codeigniter mysql left join include select

K tomu můžete použít způsob subdotazu codeigniter, pro tento účel budete muset hacknout codeigniter. takto Přejít na system/database/DB_active_rec.php Odebrat veřejné nebo chráněné klíčové slovo z těchto funkcí

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

Nyní je k dispozici zápis poddotazu A nyní je váš dotaz s aktivním záznamem

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

A věc je hotová. Zdravím!!! Poznámka:Při používání dílčích dotazů musíte použít

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

místo

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

který spustí dotaz.

Nyní můžete zkontrolovat dotaz, který byl vytvořen jako

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


  1. Upozornění:mysql_fetch_array() očekává, že parametr 1 bude zdrojem [...]

  2. Jak GROUP BY funguje?

  3. Importujte velký soubor MySQL .sql na Windows pomocí Force

  4. Získejte nadřazenou MySQL nejvyšší úrovně