Запрос в Data Explorer для событий?

Я попытался выполнить такой простой запрос для начала:

SELECT *
FROM discourse_post_event_invitees
WHERE post_id = :post_id

К сожалению, для поста, в котором, как я знаю, 15 пользователей отмечены как «Иду», возвращается 0 результатов. Есть какие-нибудь идеи?

Это должно сработать. Вы берёте правильный идентификатор поста из JSON?

Думаю, можно связать это с таблицей posts и использовать идентификатор темы, что может быть менее хлопотно, чем поиск идентификатора поста. Что-то вроде:

-- [params]
-- topic_id :topic_id

SELECT ei.user_id, ei.status
FROM discourse_post_event_invitees ei
JOIN posts p ON p.id = ei.post_id 
WHERE p.topic_id = :topic_id

Хорошо, всё ближе. Это возвращает всех, кто собирается или заинтересован, но как их различить?

А, понятно, название ключа “status” немного сбило меня с толку. Я думал, что это какой-то статус события.

status = 0 = Иду
status = 1 = Интересуюсь
status = 2 = Не иду

Чтобы сделать код чуть более читаемым и не запоминать все коды, можно добавить что-то вроде этого:


-- [params]
-- topic_id :topic_id

SELECT ei.user_id,
      CASE 
       WHEN ei.status = 0 THEN 'Иду' 
       WHEN ei.status = 1 THEN 'Заинтересован'
       WHEN ei.status = 2 THEN 'Не пойду' 
        END AS "Идёте?"
FROM discourse_post_event_invitees ei
JOIN posts p ON p.id = ei.post_id 
WHERE p.topic_id = :topic_id
ORDER BY ei.status