sql >> Database teknologi >  >> RDS >> Mysql

Konverter nesting mysql-forespørgslen til codeigniter-stil

Du kan bruge underforespørgselsmetoden for codeigniter til at gøre dette til dette formål, du bliver nødt til at hacke codeigniter. som detteGå til system/database/DB_active_rec.php Fjern offentlige eller beskyttede søgeord fra disse funktioner

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

Nu er underforespørgsel skrivning tilgængelig Og nu er her din forespørgsel med aktiv registrering

$data   =   array(
                'COUNT(B.event) AS  Calls',
                'B.ID'
            );

$this->db
        ->select($data)
        ->from('TableB AS B')
        ->like('B.event','call','both')
        ->where('`Time` >=',1360540800)
        ->where('`Time` <=',1361232000)
        ->group_by('B.ID');

$subQuery = $this->db->_compile_select();
$this->db->_reset_select();
unset($data);
$data   =   array(
                'A.ID',
                'A.fName',
                'A.lName',
                'COALESCE (B.calls, 0) AS Calls'
            );
$this->db
        ->select($data)
        ->from('TableA AS A')
        ->join("$subquery")
        ->like('A.State','SENT','both')
        ->or_like('A.State','SET','both');

Jeg har lagt begge dele ind i de likes, du kan gøre i henhold til dine krav.Bemærk:Mens du bruger underforespørgsler, skal du bruge

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

i stedet for

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

som kører forespørgslen.




  1. Hvordan fjerner man en del af strengen i mysql?

  2. Sammenlign ligheder mellem to resultatsæt

  3. Vælg sidste indsættelses-id

  4. Hvad er de levedygtige databaseabstraktionslag for Python