- replacements.languageOneOf = options.languageOneOf.filter(l => l && l !== '_unknown')
-
- let languagesQuery = '("video"."language" IN (:languageOneOf) OR '
+ const languages = options.languageOneOf.filter(l => l && l !== '_unknown')
+ const languagesQueryParts: string[] = []
+
+ if (languages.length !== 0) {
+ languagesQueryParts.push('("video"."language" IN (:languageOneOf)')
+ replacements.languageOneOf = languages
+
+ languagesQueryParts.push(
+ ' EXISTS (' +
+ ' SELECT 1 FROM "videoCaption" WHERE "videoCaption"."language" ' +
+ ' IN (' + createSafeIn(model, languages) + ') AND ' +
+ ' "videoCaption"."videoId" = "video"."id"' +
+ ' )' +
+ ')'
+ )
+ }