From: Seamus Lee Date: Thu, 21 Sep 2017 00:42:36 +0000 (+1000) Subject: CRM-21110 Get Total relationships without need for extra table X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=e729799a8844077aacd4470b00e50ee6d4a1716a;hp=fc5e86dd9ed7b6a870098f46d09ac3861bffc8bb;p=civicrm-core.git CRM-21110 Get Total relationships without need for extra table --- diff --git a/CRM/Contact/BAO/Relationship.php b/CRM/Contact/BAO/Relationship.php index 64edc3a979..b2ac947046 100644 --- a/CRM/Contact/BAO/Relationship.php +++ b/CRM/Contact/BAO/Relationship.php @@ -1279,25 +1279,23 @@ LEFT JOIN civicrm_country ON (civicrm_address.country_id = civicrm_country.id) } // building the query string - CRM_Core_DAO::executeQuery("CREATE TEMPORARY TABLE civicrm_contact_relationships " . $select1 . $from1 . $where1 . $select2 . $from2 . $where2); - $queryString = "SELECT * FROM civicrm_contact_relationships " . $order . $limit; + $queryString = $select1 . $from1 . $where1 . $select2 . $from2 . $where2; $relationship = new CRM_Contact_DAO_Relationship(); - $relationship->query($queryString); + $relationship->query($queryString . $order . $limit); $row = array(); if ($count) { $relationshipCount = 0; while ($relationship->fetch()) { $relationshipCount += $relationship->cnt1 + $relationship->cnt2; } - CRM_Core_DAO::executeQuery("DROP TEMPORARY TABLE IF EXISTS civicrm_contact_relationships"); return $relationshipCount; } else { if ($includeTotalCount) { - $values['total_relationships'] = CRM_Core_DAO::singleValueQuery("SELECT count(*) FROM civicrm_contact_relationships"); + $values['total_relationships'] = CRM_Core_DAO::singleValueQuery("SELECT count(*) FROM ({$queryString}) AS r"); } $mask = NULL; @@ -1445,7 +1443,6 @@ LEFT JOIN civicrm_country ON (civicrm_address.country_id = civicrm_country.id) } $relationship->free(); - CRM_Core_DAO::executeQuery("DROP TEMPORARY TABLE IF EXISTS civicrm_contact_relationships"); return $values; } }