我有两个具有 FK 关系的表。我想要的相当于:
select A.*, B.*
from A
join B
on B.A_ID = A.ID
我如何在 jOOQ 中有效地做到这一点?最后,我需要一个
ARecord
的实例和 BRecord
之一每个结果行。
最佳答案
像这样
Result<Record> result =
create.select()
.from(A)
.join(B).on(B.A_ID.equal(A.ID))
.fetch();
这将获取
A.*, B.*
(或更准确地说, A.A1, A.A2, ..., A.AN, B.B1, ...
)。现在为了改造result
进入 ARecord
和 BRecord
使用 Result.into(Table)
方法:ARecord a = result.into(A);
BRecord b = result.into(B);
请注意,这有已知的缺陷。例如,如果
A.X
是具有对应字段 B.X
的字段(相同的字段名称),A.X
将举行B.X
的值(value)。我已经为此注册了一个错误报告:#1802
关于sql - 如何从数据库中获取两种不同的记录类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12300459/