public function getQuerySet()
 {
     if ($this->_qs === null) {
         $qs = parent::getQuerySet();
         $this->_qs = $qs->filter(array_merge([$this->to => $this->primaryModel->{$this->from}], $this->extra));
         if ($this->primaryModel->getIsNewRecord()) {
             $this->_qs->distinct();
         }
     }
     return $this->_qs;
 }
 public function getQuerySet()
 {
     $db = ConnectionManager::getDb();
     if ($this->_qs === null) {
         $qs = parent::getQuerySet();
         $this->relatedTableAlias = $qs->makeAliasKey($this->relatedTable);
         $qs->join('JOIN', $this->relatedTable . ' ' . $this->relatedTableAlias, $this->makeOnJoin($qs));
         $this->_qs = $qs->filter([$this->relatedTableAlias . '.' . $db->schema->quoteColumnName($this->primaryModelColumn) => $this->primaryModel->pk]);
         if (!empty($this->extra)) {
             $this->_qs->filter($this->extra);
         }
     }
     return $this->_qs;
 }