Проще говоря: я пытаюсь поместить подзапрос после части THEN оператора CASE, и он будет возвращать более одной строки.Это возможно?Более подробная информация ниже:
Я ищу способ вернуть несколько строк из оператора CASE, хотя другие поля в моем операторе SELECT возвращают только одну строку.Я продолжаю получать «Подзапрос возвращает более одной строки».Это то, что я хочу сделать!
ТАБЛИЦЫ:
courses
-------
course_id, fksubject_id;
course_reports
--------------
course_reports_id, fkcourse_id, is_finished, timestamp;
course_reports_answers
----------------------
course_reports_answers_id, fkcourse_reports_id, fkquestion_id, answer1, answer2, answer3
ЗАПРОС:
SELECT
cr.course_reports_id,
CASE WHEN c.fksubject_id = 1 THEN (SELECT fkquestion_id from course_reports_answers WHERE fkcourse_reports_id = 1) ELSE NULL END AS 'fkquestion_id'
FROM
courses c
join course_reports cr on cr.fkcourse_id = c.course_id
join course_reports_answers cra on cra.fkcourse_reports_id = cr.course_reports_id
Итак, поскольку существует несколько fkquestion_ids на course_report_id, желаемый результатis:
1 1
1 2
1 3
1 4
1 5
etc.
Опять я получаю 'Подзапрос возвращает более одной строки.'
Я пытаюсь повторить одно значение и связать его с разными значениями, создав несколькострок.Я думаю, что делал это раньше, но мне трудно найти мой прошлый запрос или понять, что не так с тем, что я делаю сейчас.ПРИМЕЧАНИЕ: этот SELECT в конечном итоге будет использоваться для заполнения оператора вставки.ЛЮБАЯ помощь очень ценится!