Использование оператора IN в Data Explorer

Всем привет, я заметил странное поведение при редактировании и выполнении запроса в Data Explorer. Я пытаюсь использовать операторы WHERE и IN, чтобы выбрать только посты из тем в определённых категориях:

WHERE
    t.category_id IN (420, 421, 426)

Однако я не уверен, что условие WHERE работает как ожидалось: если я запускаю запрос для периодов, предшествующих созданию указанных категорий, он просто выводит все темы, независимо от категории. Кроме того, оператор IN не меняет цвет, и я задумался, распознаёт ли Data Explorer его как оператор:

Есть ли у кого-то идеи, что происходит? Большое спасибо!

Хм. :thinking:

Я использовал его в очень похожем запросе еще вчера вечером, и у меня всё сработало как ожидалось.

Могли бы вы поделиться вашим полным запросом, чтобы мы могли проверить, нет ли здесь каких-то других факторов?

Конечно, вот оно. Этот запрос используется для получения информации, необходимой для создания пользовательского файла журнала, который может быть обработан Gource. См.: Custom Log Format · acaudwell/Gource Wiki · GitHub

-- Этот запрос извлекает список последних сообщений
-- вместе с информацией о пользователе и деталями темы.
-- Результат сортируется по дате создания в порядке возрастания.

-- Выбранные поля следующие:
-- timestamp: временная метка в формате ISO 8601 или Unix-время создания сообщения.
-- username: имя пользователя, создавшего сообщение.
-- type: фиксированное значение 'A', указывающее тип действия (в данном случае 'Добавлено').
-- topic: ID темы, к которой принадлежит сообщение.
-- post_number: уникальный номер сообщения в рамках темы.
-- reply_to_post_number: номер сообщения, на которое отвечает данное сообщение (если есть).
-- raw: содержимое сообщения, ограниченное первыми 30 символами.
-- category_id: ID категории, к которой принадлежит тема.

SELECT 
    p.created_at as timestamp, 
    u.username, 
    'A' as type, 
    p.topic_id as topic, 
    p.post_number as post_number, 
    p.reply_to_post_number as reply_to_post_number, 
    SUBSTRING(p.raw, 1, 30) AS raw,
    t.category_id
FROM
    posts p
JOIN
    users u ON p.user_id = u.id
JOIN
    topics t ON p.topic_id = t.id
WHERE
    t.category_id IN (420, 421, 426)
    AND t.created_at > '2022-01-01'
ORDER BY
    p.created_at ASC
LIMIT 1000

Всё выглядит в порядке.

Когда я запускаю это для трёх новых категорий документов (созданных около 10 дней назад), используя тот же AND t.created_at > '2022-01-01', я не вижу данных, извлечённых из других категорий (хотя есть много небольших постов с действиями, которые, возможно, стоит отфильтровать в зависимости от вашего сценария использования). Если запустить без условия AND t.created_at > '2022-01-01' вообще, данные всё равно извлекаются только из этих категорий.