Всем привет, я заметил странное поведение при редактировании и выполнении запроса в Data Explorer. Я пытаюсь использовать операторы WHERE и IN, чтобы выбрать только посты из тем в определённых категориях:
WHERE
t.category_id IN (420, 421, 426)
Однако я не уверен, что условие WHERE работает как ожидалось: если я запускаю запрос для периодов, предшествующих созданию указанных категорий, он просто выводит все темы, независимо от категории. Кроме того, оператор IN не меняет цвет, и я задумался, распознаёт ли Data Explorer его как оператор:
Есть ли у кого-то идеи, что происходит? Большое спасибо!
Хм. 
Я использовал его в очень похожем запросе еще вчера вечером, и у меня всё сработало как ожидалось.
Могли бы вы поделиться вашим полным запросом, чтобы мы могли проверить, нет ли здесь каких-то других факторов?
Конечно, вот оно. Этот запрос используется для получения информации, необходимой для создания пользовательского файла журнала, который может быть обработан 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' вообще, данные всё равно извлекаются только из этих категорий.