public function buildQuery($query = null)
    {
        if (null === $query) {
            $query = $this->query;
        }

        $sql = "SELECT ";
        if (isset($query['distinct']) && $query['distinct']) {
            $sql .= 'DISTINCT ';
        }
        $sql .= isset($query['select']) ? $query['select'] : '*';

        if (!isset($query['from'])) {
            return false;
        }

        $sql .= "\nFROM " . $query['from'];
        if (isset($query['join'])) {
            $sql .= "\n" . (is_array($query['join']) ? implode("\n", $query['join']) : $query['join']);
        }
        if (isset($query['where']) && $query['where'] !== '') {
            $sql .= "\nWHERE " . $query['where'];
        }
        if (isset($query['group'])) {
            $sql .= "\nGROUP BY " . $query['group'];
            if (isset($query['having'])) {
                $sql .= "\nHAVING " . $query['having'];
            }
        }
        if (isset($query['order'])) {
            $sql .= "\n ORDER BY " . $query['order'];
        }
        $limit = isset($query['limit']) ? $query['limit'] : 0;
        $offset = isset($query['offset']) ? $query['offset'] : 0;
        $sql = $this->db->buildLimitOffset($sql, $limit, $offset);

        if (isset($query['union'])) {
            $sql .= "\n" . (is_array($query['union']) ? implode("\n", $query['union']) : $query['union']);
        }

        return $sql;
    }
public function buildQuery($query = null)
    {
        if (null === $query) {
            $query = $this->query;
        }

        $sql = "SELECT ";
        if (isset($query['distinct']) && $query['distinct']) {
            $sql .= 'DISTINCT ';
        }
        $sql .= isset($query['select']) ? $query['select'] : '*';

        if (!isset($query['from'])) {
            return false;
        }

        $sql .= "\nFROM " . $query['from'];
        if (isset($query['join'])) {
            $sql .= "\n" . (is_array($query['join']) ? implode("\n", $query['join']) : $query['join']);
        }
        if (isset($query['where']) && $query['where'] !== '') {
            $sql .= "\nWHERE " . $query['where'];
        }
        if (isset($query['group'])) {
            $sql .= "\nGROUP BY " . $query['group'];
            if (isset($query['having'])) {
                $sql .= "\nHAVING " . $query['having'];
            }
        }
        if (isset($query['order'])) {
            $sql .= "\n ORDER BY " . $query['order'];
        }
        $limit = isset($query['limit']) ? $query['limit'] : 0;
        $offset = isset($query['offset']) ? $query['offset'] : 0;
        $sql = $this->db->buildLimitOffset($sql, $limit, $offset);

        if (isset($query['union'])) {
            $sql .= "\n" . (is_array($query['union']) ? implode("\n", $query['union']) : $query['union']);
        }

        return $sql;
    }
public function buildQuery ( $ query = null ) { if ( null === $ query ) { $ query = $ this -> query ; } $ sql = "SELECT " ; if ( isset ( $ query [ 'distinct' ] ) && $ query [ 'distinct' ] ) { $ sql .= 'DISTINCT ' ; } $ sql .= isset ( $ query [ 'select' ] ) ? $ query [ 'select' ] : '*' ; if ( ! isset ( $ query [ 'from' ] ) ) { return false ; } $ sql .= "\nFROM " . $ query [ 'from' ] ; if ( isset ( $ query [ 'join' ] ) ) { $ sql .= "\n" . ( is_array ( $ query [ 'join' ] ) ? implode ( "\n" , $ query [ 'join' ] ) : $ query [ 'join' ] ) ; } if ( isset ( $ query [ 'where' ] ) && $ query [ 'where' ] !== '' ) { $ sql .= "\nWHERE " . $ query [ 'where' ] ; } if ( isset ( $ query [ 'group' ] ) ) { $ sql .= "\nGROUP BY " . $ query [ 'group' ] ; if ( isset ( $ query [ 'having' ] ) ) { $ sql .= "\nHAVING " . $ query [ 'having' ] ; } } if ( isset ( $ query [ 'order' ] ) ) { $ sql .= "\n ORDER BY " . $ query [ 'order' ] ; } $ limit = isset ( $ query [ 'limit' ] ) ? $ query [ 'limit' ] : 0 ; $ offset = isset ( $ query [ 'offset' ] ) ? $ query [ 'offset' ] : 0 ; $ sql = $ this -> db -> buildLimitOffset ( $ sql , $ limit , $ offset ) ; if ( isset ( $ query [ 'union' ] ) ) { $ sql .= "\n" . ( is_array ( $ query [ 'union' ] ) ? implode ( "\n" , $ query [ 'union' ] ) : $ query [ 'union' ] ) ; } return $ sql ; }
Build query SQL

@param array $query use $this->query if not specified
@return string
Build query SQL