code: protected function createFallbackQuery($category, $language, $fallbackLanguage)
      {
          return (new Query())->select(['message' => 't1.message', 'translation' => 't2.translation'])
              ->from(['t1' => $this->sourceMessageTable, 't2' => $this->messageTable])
              ->where([
                  't1.id' => new Expression('[[t2.id]]'),
                  't1.category' => $category,
                  't2.language' => $fallbackLanguage,
              ])->andWhere([
                  'NOT IN', 't2.id', (new Query())->select('[[id]]')->from($this->messageTable)->where(['language' => $language]),
              ]);
      }
docs: The method builds the [[Query]] object for the fallback language messages search.
  Normally is called from [[loadMessagesFromDb]].
  
  @param string $category the message category
  @param string $language the originally requested language
  @param string $fallbackLanguage the target fallback language
  @return Query
  @see loadMessagesFromDb
  @since 2.0.7