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