все. У меня очень похожий вопрос: this one. Я пытаюсь преобразовать строки в столбцы в результатах, но мне также нужно объединить несколько таблиц. Я начинаю понимать, как это сделать в одной таблице, но я понятия не имею, как использовать объединения для выполнения того же самого.Преобразование строк в столбцы в postgresql с объединениями
У меня есть 3 таблицы - тест, вопрос и ответ. У теста есть вопросы. У вопросов есть ответы. До сих пор довольно очевидно. Мне нужно вывести список вопросов и ответов для определенного теста, но я бы хотел, чтобы он был в определенном формате. (Я не установил их - это то, с чем мне нужно работать.)
Как я уже сказал, это очень похоже на другое сообщение о перемещении строк в столбцы, но я не был уверен, как включить присоединяется к нему.
Вот структура таблицы:
TEST
----------
id
task_id
name
QUESTION
----------
id
test_id
text
correctanswer_id
ANSWER
----------
id
question_id
text
Вот что у меня есть сейчас, и что я получаю от него:
-- select all review questions for a specific video
select t.id as "testid", q.id as "questionid", q.text as "questiontext",
a.id as "answerid", a.text as "answertext"
from "Question" q
inner join "Answer" a on a.question_id = q.id
inner join "Test" t on t.id = q.test_id
where t.test_id = 100
+--------+------------+--------------+----------+------------+
| testid | questionid | questiontext | answerid | answertext |
+--------+------------+--------------+----------+------------+
| 100 | 200 | 'Question 1' | 300 | 'Answer 1' |
| 100 | 200 | 'Question 1' | 301 | 'Answer 2' |
| 100 | 200 | 'Question 1' | 302 | 'Answer 3' |
| 100 | 200 | 'Question 1' | 303 | 'Answer 4' |
| 100 | 201 | 'Question 2' | 304 | 'Answer 1' |
| 100 | 201 | 'Question 2' | 305 | 'Answer 2' |
| 100 | 201 | 'Question 2' | 306 | 'Answer 3' |
| 100 | 201 | 'Question 2' | 307 | 'Answer 4' |
+--------+------------+--------------+----------+------------+
Вот что мне нужно вместо этого:
+--------+------------+--------------+-----------+-------------+-----------+-------------+-----------+-------------+-----------+-------------+------------------+
| testid | questionid | questiontext | answerid1 | answertext1 | answerid2 | answertext2 | answerid3 | answertext3 | answerid4 | answertext4 | correctanswer_id |
+--------+------------+--------------+-----------+-------------+-----------+-------------+-----------+-------------+-----------+-------------+------------------+
| 100 | 200 | 'Question 1' | 300 | 'Answer 1' | 301 | 'Answer 2' | 302 | 'Answer 3' | 303 | 'Answer 4' | 301 |
| 100 | 201 | 'Question 2' | 304 | 'Answer 1' | 305 | 'Answer 2' | 306 | 'Answer 3' | 307 | 'Answer 4' | 307 |
+--------+------------+--------------+-----------+-------------+-----------+-------------+-----------+-------------+-----------+-------------+------------------+
Это не будет работать, потому что это серия тестовых вопросов и каждый вопрос имеет уникальные ответы ответа. Он должен быть полностью переменным. – bungee41