2017-04-11 2 views
1

Ich arbeite daran, die Kundendaten aus verschiedenen Tabellen zu erhalten. Ich habe diese Abfrage erstellt und getestet und es funktioniert gut. Das Problem besteht darin, wie der Benutzer diese Abfrage in Active Records-Abfrage konvertieren (konvertieren). Danke.Wie korrelierte Unterabfrage in Active Record-Abfrage in Codeigniter

  SELECT c.cust_id, `c`.`cust_contact_name`, `c`.`cust_active_flag`, 
      (select COUNT(`pm`.`cust_id`) from property_master as pm 
      Where pm.cust_id = c.cust_id) as prop_count, 
      (select a.addr_phoneno1 from address as a 
      WHERE a.cust_id = c.cust_id AND a.addr_type_flag IN ('C', 'CP')) as cust_phone, 
      (select count(ci.cust_id) from customer_inquiry as ci 
      WHERE ci.cust_id = c.cust_id) as inquiry_count, 
      (select max(inq_date) from customer_inquiry as ci 
      WHERE ci.cust_id = c.cust_id) as last_inq_date 
      FROM customer as c 
      GROUP BY c.cust_ID 
+0

@hekmat verwenden, können Sie auf dieser Sir –

Antwort

1

CodeIgniter Aktive Datensatzklassen haben keine direkte Unterstützung für Unterabfragen. Sie können jede 3rd-Party-Bibliothek wie NTICompass CodeIgniter-Subqueries oder $this->db->query(); verwenden, um Ihre Abfrage auszuführen.

Noch können Sie den folgenden Weg verwenden. Aber ich werde vorschlagen $this->db->query();

$this->db->select('c.cust_id, `c`.`cust_contact_name`, `c`.`cust_active_flag`, 
      (select COUNT(`pm`.`cust_id`) from property_master as pm ' Where pm.cust_id = c.cust_id) as prop_count, (select a.addr_phoneno1 from address as a 
      WHERE a.cust_id = c.cust_id AND a.addr_type_flag IN ('C', 'CP')) as cust_phone, 
      (select count(ci.cust_id) from customer_inquiry as ci 
      WHERE ci.cust_id = c.cust_id) as inquiry_count, 
      (select max(inq_date) from customer_inquiry as ci 
      WHERE ci.cust_id = c.cust_id) as last_inq_date) 
     ->from('customer c'); 
$this->db->group_by('c.cust_ID'); 
$result = $this->db->get(); 
+0

Dank @Bikram helfen, aber ich bin für die andere Option als Abfrage direkt verwenden. –

+0

Sie können eine beliebige Drittanbieter-CI-Bibliothek verwenden. –

+0

können Sie jemanden vorschlagen oder direkten Link zu betrachten. –

Verwandte Themen