【发布时间】:2023-03-27 08:22:02
【问题描述】:
我有三个带有列的表(假名):
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...
如果学生没有,这些字段有时可能为空。
问题是most examples 会有 STUDENT 包含其他表的 ID,我没有那个选项。
我尝试了类似的方法(输出到一个新的 obj,该 obj 包含用于加入这个东西的所有 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
我什至不知道该怎么做。
【问题讨论】: