Mysql
 sql >> база данни >  >> RDS >> Mysql

codeigniter mysql ляво присъединяване включва изберете

Можете да използвате начин на подзаявка на codeigniter, за да направите това, за тази цел ще трябва да хакнете codeigniter. като това Отидете на system/database/DB_active_rec.php Премахнете публична или защитена ключова дума от тези функции

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL – Как да махна таблица, ако съществува в базата данни?

  2. bind_param() е необходим само за въведени от потребителя стойности или всички?

  3. изтриване на редове от множество таблици

  4. Проблеми с паролата за MySQL (mac OS X Lion)

  5. Могат ли да се използват заместващи знаци за имена на таблици за GRANT в MySQL