2017-04-11 7 views
1

Je travaille sur pour obtenir les détails du client à partir de tables différentes. J'ai créé et testé cette requête et cela fonctionne très bien. Le problème est de savoir comment l'utilisateur (convertir) cette requête en requête Active Records. Merci.Comment utiliser la sous-requête corrélée dans la requête d'enregistrement actif dans 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 peut vous aider à ce monsieur –

Répondre

1

CodeIgniter Les classes d'enregistrement actives ne prennent pas directement en charge les sous-requêtes. Vous pouvez utiliser n'importe quelle bibliothèque tierce comme NTICompass CodeIgniter-Subqueries ou $this->db->query(); pour exécuter votre requête.

Néanmoins, vous pouvez utiliser la méthode suivante. Mais je vous suggère d'utiliser $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

merci @Bikram Mais je cherche l'autre option que d'utiliser directement la requête. –

+0

Vous pouvez utiliser n'importe quelle bibliothèque de CI tierce. –

+0

pouvez-vous suggérer quelqu'un ou lien direct à regarder. –