бывает получаю 6 вопросов с уникальной темой, а бывает, что темы повторяются.
Как это можно исправить?
.distinct()
спасибо, в данном случае не работает. order_by() странно работает. Я не пойму как правильно сделать .distinct(), чтобы не было ошибки subquery has too many columns LINE 1: ...OM "testme_question" WHERE "testme_question"."id" IN (SELECT.. сам запрос SELECT DISTINCT "testme_question"."id", "testme_question"."title", "testme_question"."title_uk", "testme_question"."title_ru", "testme_question"."title_en", "testme_question"."image", "testme_question"."help", "testme_question"."help_uk", "testme_question"."help_ru", "testme_question"."help_en", "testme_question"."number", "testme_question"."number_global", "testme_question"."show", "testme_question"."correct_answers", "testme_question"."order", "testme_question"."updated", "testme_question"."real_updated", RANDOM() FROM "testme_question" INNER JOIN "testme_question_theme" ON ("testme_question"."id" = "testme_question_theme"."question_id") WHERE "testme_question_theme"."theme_id" IN (SELECT DISTINCT ON (U0."title_uk") U0."id" AS Col1 FROM "testme_theme" U0 INNER JOIN "testme_question_theme" U1 ON (U0."id" = U1."theme_id") INNER JOIN "testme_question" U2 ON (U1."question_id" = U2."id") INNER JOIN "testme_question_ticket" U3 ON (U2."id" = U3."question_id") INNER JOIN "testme_ticket" U4 ON (U3."ticket_id" = U4."id") WHERE (U0."title_uk" IS NOT NULL AND U4."AB" = 6 AND U0."number" IN (1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 34, 37, 38, 39, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62) AND U0."parent_id" IS NULL) ORDER BY U0."title_uk" ASC) ORDER BY RANDOM() ASC LIMIT 6
судя по описанию проблемы, theme - это в FK в другую модель в этом случае filter делает JOIN и записи parent модели могут дублироваться
а, ну вот как бы и джоин)
Question.objects.filter(theme__in=unique_themes).distinct().order_by(‘?’)[:6] ?
subquery has too many columns LINE 1: ...OM "testme_question" WHERE "testme_question"."id" IN (SELECT…
а откуда берется testme_question?
unique_themes = Theme.objects.filter( question__ticket__AB=complect, number__in=nums_pull, title__isnull=False, parent__isnull=True).order_by('title').distinct('title_uk’) Question.objects.filter(theme__in=unique_themes).order_by(‘?’)[:6]
ты задачу определи, перед тем как что-то писать, то что там я показывал тебе двумя запросами будет брать все вопросы с без разницы каким количеством тем
@shocodeart здесь повторяются темы во втором запросе
очень люблю когда люди темнят и заставляют угадывать, когда просят помощи)
так твой второй запрос вытащит все вопросы с такими темами
в первом запросе все ок, но что делать со вторым? именно в нем ошибка, что distinct() там не работает
Обсуждают сегодня