처음으로 이렇게 단순한 쿼리를 실행해 보았습니다:
SELECT *
FROM discourse_post_event_invitees
WHERE post_id = :post_id
불행히도 15명의 사용자가 Going으로 표시된 것으로 알고 있는 게시물의 경우 0개의 결과를 반환하고 있습니다. 혹시 아이디어가 있으신가요?
처음으로 이렇게 단순한 쿼리를 실행해 보았습니다:
SELECT *
FROM discourse_post_event_invitees
WHERE post_id = :post_id
불행히도 15명의 사용자가 Going으로 표시된 것으로 알고 있는 게시물의 경우 0개의 결과를 반환하고 있습니다. 혹시 아이디어가 있으신가요?
그렇게 하면 작동할 것입니다. JSON에서 올바른 post id를 가져오고 계신가요?
post id를 찾는 것보다 posts 테이블에 연결하고 topic id를 사용하는 것이 덜 번거로울 수 있습니다. 다음과 같이 하면 됩니다:
-- [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 '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