protected function getValidQueryKeys()
    {
        $whereIns = [];

        foreach ($this->whereBetweens as $field => $range) {
            $whereIns[$field] = range($range[0], $range[1]);
        }

        foreach ($whereIns as $key => $value) {
            $this->whereIn($key, $value);
        }

        $this->queryKeys = [];

        foreach ($this->whereIns as $field => $range) {
            if ($this->queryKeys === []) {
                foreach ($range as $value) {
                    $this->queryKeys[] = $this->bindValue($this->key, $field, $value);
                }
            } else {
                $queryKeys = $this->queryKeys;
                $this->queryKeys = [];
                foreach ($queryKeys as $item) {
                    foreach ($range as $value) {
                        $this->queryKeys[] = $this->bindValue($item, $field, $value);
                    }
                }
            }
        }

        $this->queryKeys = array_unique(array_values($this->queryKeys));

        return $this;
    }