From 46629d99f6942e46abaeeb835ebb67a5b3969c60 Mon Sep 17 00:00:00 2001
From: mattab <matthieu.aubry@gmail.com>
Date: Fri, 5 Dec 2014 20:54:17 +1300
Subject: [PATCH] Building the inner query reusing buildSelectQuery

---
 core/DataAccess/LogQueryBuilder.php | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/core/DataAccess/LogQueryBuilder.php b/core/DataAccess/LogQueryBuilder.php
index 2be8052d4c..fb1f1c1c47 100644
--- a/core/DataAccess/LogQueryBuilder.php
+++ b/core/DataAccess/LogQueryBuilder.php
@@ -175,22 +175,21 @@ class LogQueryBuilder
                 . "Please use a table prefix.");
         }
 
-        $select = preg_replace('/'.$matchTables.'\./', 'log_inner.', $select);
-        $orderBy = preg_replace('/'.$matchTables.'\./', 'log_inner.', $orderBy);
-        $groupBy = preg_replace('/'.$matchTables.'\./', 'log_inner.', $groupBy);
+        $innerSelect = implode(", \n", $neededFields);
+        $innerFrom = $from;
+        $innerWhere = $where;
+        $innerGroupBy = "log_visit.idvisit";
+        $innerOrderBy = "NULL";
 
-        $from = "(
-			SELECT
-				" . implode(",
-				", $neededFields) . "
-			FROM
-				$from
-			WHERE
-				$where
-			GROUP BY log_visit.idvisit
-				) AS log_inner";
+        $innerQuery = $this->buildSelectQuery($innerSelect, $innerFrom, $innerWhere, $innerOrderBy, $innerGroupBy);
 
+        $select = preg_replace('/'.$matchTables.'\./', 'log_inner.', $select);
+        $from = "(
+            $innerQuery
+        ) AS log_inner";
         $where = false;
+        $orderBy = preg_replace('/'.$matchTables.'\./', 'log_inner.', $orderBy);
+        $groupBy = preg_replace('/'.$matchTables.'\./', 'log_inner.', $groupBy);
         $query = $this->buildSelectQuery($select, $from, $where, $orderBy, $groupBy);
         return $query;
     }
-- 
GitLab