public function getQueryTags(SelectQuery $query, $className)
 {
     $columns = $this->getLinkObjectColumnListByClass($className);
     $tagList = [];
     if ($query->getTablesCount() > 1 || !$this->isLazy($className)) {
         foreach ($query->getJoinedTables() as $table) {
             /* @var $table SQLRealTableName */
             $tagList[] = $table->getRealTable();
         }
     } else {
         foreach ($query->getWhere() as $whereObject) {
             if ($whereObject instanceof BinaryExpression) {
                 if ($tag = $this->getTagByBinaryExpression($whereObject, $query, $className, $columns)) {
                     $tagList[] = $tag;
                 }
             }
             if ($whereObject instanceof LogicalChain) {
                 foreach ($whereObject->getChain() as $logic) {
                     if ($logic instanceof BinaryExpression) {
                         if ($tag = $this->getTagByBinaryExpression($logic, $query, $className, $columns)) {
                             $tagList[] = $tag;
                         }
                     }
                 }
             }
         }
         if (empty($tagList)) {
             $tagList = $this->getDefaultTags($className);
         }
     }
     return $tagList;
 }