He intentado consultar algo tan simple como esto, para empezar:
SELECT *
FROM discourse_post_event_invitees
WHERE post_id = :post_id
Desafortunadamente, estoy obteniendo 0 resultados para una publicación que sé que tiene 15 usuarios marcados como “Asistirán”. ¿Alguna idea?
Eso debería funcionar. ¿Estás obteniendo el ID de publicación correcto del JSON?
Creo que podrías vincularlo a la tabla de publicaciones y usar un ID de tema, lo que podría ser menos complicado que encontrar el ID de publicación. 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
Okay, cada vez más cerca. Eso devuelve a todos los que van o están interesados, ¿cómo diferencias?
Ah, está bien, el nombre de la clave “status” me confundió un poco. Pensé que era algún tipo de estado del evento.
status = 0 = Asistiré
status = 1 = Interesado
status = 2 = No asistiré
Puedes hacerlo un poco más fácil de leer sin tener que recordar los códigos si añades algo como esto:
-- [params]
-- topic_id :topic_id
SELECT ei.user_id,
CASE
WHEN ei.status = 0 THEN 'Going'
WHEN ei.status = 1 THEN 'Interested'
WHEN ei.status = 2 THEN 'Not going'
END AS "Going?"
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