У меня есть три таблицы со столбцами (неправильные поддельные имена):
STUDENT (student_id)
STUDENT_UNIQUE_INFO (student_unique_info_id, student_id)
STUDENT_OTHER_INFO (student_other_info_id, student_id)
Хотелось бы изменить схему, но не могу.
У некоторых учеников нет unique_info и / или other_info.
Мой набор результатов будет выглядеть так:
STUDENT_ID | STUDENT_UNIQUE_INFO_FIELDS... | STUDENT_OTHER_INFO_FIELDS...
Где поля могут иногда быть нулевыми, если у студента их нет.
Проблема в В большинстве примеров будет иметь СТУДЕНТ, содержащий идентификаторы других таблиц, у меня нет этой опции.
Я пробовал что-то вроде (вывод в новый объект, который принимает все 3 таблицы, используемые для объединения этой вещи)
SELECT NEW path.to.outputObj(S,
(SELECT SUI
FROM path.to.SUI SUI
WHERE S.studentId = SUI.studentId),
(SELECT SOI
FROM path.to.SOI SOI
WHERE S.studentId = SOI.studentId))
FROM STUDENT S
Но он взорвался, потому что у некоторых студентов есть несколько записей в student_other_info.
java.sql.SQLException: Subquery returns more than 1 row
Я просто немного растерялся из-за того, как это сделать.