mysql - динамически выбирать строку в виде столбца - PullRequest
0 голосов
/ 25 октября 2018

Обновление: я хочу использовать динамический sql, чтобы выбрать вопрос в качестве столбца и поместить ответ в строку, например, курсор или цикл, возможно ли это?

Мне нужен результат выбора, подобный этому

+--------+---------------+--------------------------------------------------------------------------+
| userid | Living Status | This is another question get from row and it's longer than 64 characters |
+--------+---------------+--------------------------------------------------------------------------+
|     19 | married       | q2_opt3                                                                  |
+--------+---------------+--------------------------------------------------------------------------+

А вот мой запрос

select 
       userid,
        min(if(question.ordering=1,o.name,NULL )) as 'Living Status',
        min(if(question.ordering=2,o.name,NULL )) as 'This is another question get from row and it's longer than 64 characters'
from answer
       inner join question on question.key_value = answer.key_value
       inner join q_option o on question.id = o.question_id and o.value = answer.answer
where userid in (19)
GROUP BY id

Таблица вопросов похожа на

+----+----------+---------------------------------------------------------------------------+--------------+
| id | ordering |                                 question                                  |  key_value   |
+----+----------+---------------------------------------------------------------------------+--------------+
|  1 |        1 | Living Status                                                             | livingStatus |
|  2 |        2 | This is another question get from row and it's longer than 64 characters  | question_2   |
+----+----------+---------------------------------------------------------------------------+--------------+

Таблица ответов похожа на

+----+--------+--------------+--------+
| id | answer |  key_value   | userid |
+----+--------+--------------+--------+
|  1 |      2 | livingStatus |     19 |
|  2 |      3 | question_2   |     19 |
+----+--------+--------------+--------+

Таблица q_option похожа на

+----+----------+-------------+-------+
| id |   name   | question_id | value |
+----+----------+-------------+-------+
|  1 | single   |           1 |     1 |
|  2 | married  |           1 |     2 |
|  3 | divorced |           1 |     3 |
|  4 | q2_opt1  |           2 |     1 |
|  5 | q2_opt2  |           2 |     2 |
|  6 | q2_opt3  |           2 |     3 |
+----+----------+-------------+-------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...