diff --git a/classes/db/queryparts/condition/Condition.class.php b/classes/db/queryparts/condition/Condition.class.php index 9e9818638..4754fa72b 100644 --- a/classes/db/queryparts/condition/Condition.class.php +++ b/classes/db/queryparts/condition/Condition.class.php @@ -41,12 +41,12 @@ class Condition * @param string $pipe * @return void */ - function __construct($column_name, $argument, $operation, $pipe) + function __construct($column_name, $argument, $operation, $pipe = 'and') { $this->column_name = $column_name; $this->argument = $argument; $this->operation = $operation; - $this->pipe = strtoupper($pipe); + $this->pipe = $pipe; } function getArgument() @@ -85,7 +85,7 @@ class Condition */ function toStringWithoutValue() { - return $this->pipe . ' ' . $this->getConditionPart($this->_value); + return strtoupper($this->pipe) . ' ' . $this->getConditionPart($this->_value); } /** @@ -94,7 +94,7 @@ class Condition */ function toStringWithValue() { - return $this->pipe . ' ' . $this->getConditionPart($this->_value); + return strtoupper($this->pipe) . ' ' . $this->getConditionPart($this->_value); } function setPipe($pipe) diff --git a/classes/db/queryparts/condition/ConditionGroup.class.php b/classes/db/queryparts/condition/ConditionGroup.class.php index 0c782c3e6..e2b46520b 100644 --- a/classes/db/queryparts/condition/ConditionGroup.class.php +++ b/classes/db/queryparts/condition/ConditionGroup.class.php @@ -29,7 +29,7 @@ class ConditionGroup * @param string $pipe * @return void */ - function __construct($conditions, $pipe = "") + function __construct($conditions, $pipe = 'and') { $this->conditions = array(); foreach($conditions as $condition) @@ -89,7 +89,7 @@ class ConditionGroup if($this->pipe !== "" && trim($group) !== '') { - $group = $this->pipe . ' (' . $group . ')'; + $group = strtoupper($this->pipe) . ' (' . $group . ')'; } $this->_group = $group; diff --git a/classes/db/queryparts/table/JoinTable.class.php b/classes/db/queryparts/table/JoinTable.class.php index 76257aa6d..6e882cc28 100644 --- a/classes/db/queryparts/table/JoinTable.class.php +++ b/classes/db/queryparts/table/JoinTable.class.php @@ -43,10 +43,17 @@ class JoinTable extends Table { $part = strtoupper($this->join_type) . ' ' . $this->name; $part .= $this->alias ? (' AS ' . $this->alias) : ''; - $part .= ' ON '; + $part .= ' ON '; + + $condition_count = 0; foreach($this->conditions as $conditionGroup) { - $part .= $conditionGroup->toString($with_value); + if($condition_count === 0) + { + $conditionGroup->setPipe(""); + } + $part .= $conditionGroup->toString($with_value); + $condition_count++; } return $part; } diff --git a/classes/xml/xmlquery/tags/condition/ConditionTag.class.php b/classes/xml/xmlquery/tags/condition/ConditionTag.class.php index 4d0a2f5fc..fe4ce7ee1 100644 --- a/classes/xml/xmlquery/tags/condition/ConditionTag.class.php +++ b/classes/xml/xmlquery/tags/condition/ConditionTag.class.php @@ -62,7 +62,7 @@ class ConditionTag function __construct($condition) { $this->operation = $condition->attrs->operation; - $this->pipe = $condition->attrs->pipe; + $this->pipe = $condition->attrs->pipe ?: 'and'; $dbParser = DB::getParser(); $this->column_name = $dbParser->parseExpression($condition->attrs->column);