Запрос полей и ответов опроса

Я использую плагин Discourse Surveys: GitHub - discourse/discourse-surveys · GitHub

При отправке опросов я вижу, что переключатели, флажки и выпадающие списки, по-видимому, регистрируются как NULL в базе данных. Также кажется, что один ответ был зарегистрирован дважды:

Значения для

хранятся в отдельной таблице.

Это должно помочь вам достичь нужного результата :slight_smile:

-- [params]
-- null int :user_id
-- string :name

SELECT s.name, s.post_id, sf.question, COALESCE(sr.value, sfo.html) AS value, sr.user_id, sr.created_at as responded_at
FROM surveys s
JOIN survey_fields sf ON sf.survey_id = s.id
JOIN survey_responses sr ON sr.survey_field_id = sf.id
LEFT JOIN survey_field_options sfo ON sfo.id = sr.survey_field_option_id
WHERE s.name = :name
AND (:user_id IS NULL OR sr.user_id = :user_id)
ORDER BY sr.user_id

Я добавил опцию запроса для каждого пользователя (если поле оставлено пустым, запрашиваются все пользователи по опросу), но вы можете удалить

AND (:user_id IS NULL OR sr.user_id = :user_id)

если эта функция вам не нужна.

Ах, я даже не заметил этот лишний стол! Спасибо!