Tentei consultar algo tão simples quanto isto, para começar:
SELECT *
FROM discourse_post_event_invitees
WHERE post_id = :post_id
Infelizmente, estou recebendo 0 resultados para uma postagem que sei que tem 15 usuários marcados como “Indo”. Alguma ideia?
1 curtida
Isso deve funcionar. Você está pegando o ID de postagem correto do JSON?
Acho que você poderia vinculá-lo à tabela de postagens e usar um ID de tópico, o que pode ser menos complicado do que encontrar o ID de postagem. Algo como:
-- [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
2 curtidas
Ok, está chegando mais perto. Isso retorna todos que estão indo ou interessados, como você diferencia?
Ah, ok, o nome da chave “status” me confundiu um pouco. Eu estava pensando que era algum tipo de status do evento.
status = 0 = Indo
status = 1 = Interessado
status = 2 = Não Indo
2 curtidas
Você pode torná-lo um pouco mais fácil de ler sem ter que memorizar os códigos também, se adicionar algo como isto:
-- [params]
-- topic_id :topic_id
SELECT ei.user_id,
CASE
WHEN ei.status = 0 THEN 'Indo'
WHEN ei.status = 1 THEN 'Interessado'
WHEN ei.status = 2 THEN 'Não indo'
END AS "Indo?"
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
4 curtidas