Ich habe versucht, etwas so Einfaches wie dieses abzufragen, um anzufangen:
SELECT *
FROM discourse_post_event_invitees
WHERE post_id = :post_id
Leider erhalte ich 0 Ergebnisse für einen Beitrag, von dem ich weiß, dass er 15 Benutzer als “Geht” markiert hat. Irgendwelche Ideen?
1 „Gefällt mir“
Das sollte funktionieren. Nimmst du die richtige Post-ID aus dem JSON?
Ich denke, du könntest es mit der Posts-Tabelle verknüpfen und eine Topic-ID verwenden, was vielleicht weniger Aufwand ist, als die Post-ID zu finden. So etwas wie:
-- [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 „Gefällt mir“
Okay, das bringt uns näher. Das gibt alle zurück, die teilnehmen oder interessiert sind. Wie unterscheidet man sie?
Ah, okay, der Name des Schlüssels „status“ hat mich etwas verwirrt. Ich dachte, das wäre eine Art Status des Ereignisses.
status = 0 = Geht
status = 1 = Interessiert
status = 2 = Geht nicht
2 „Gefällt mir“
Sie können es etwas einfacher lesbar machen, ohne sich die Codes merken zu müssen, wenn Sie etwas wie dieses hinzufügen:
-- [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
4 „Gefällt mir“