@DBFlute
[Select句]
o DerivedReferrer *子テーブルカラムのスカラ値導出
(Platinum)
[From句]
o InlineView *親テーブルのインラインビュー
(Platinum)
→ But ほとんどの場合「On(OnClause)」で代替する
[Where句]
o ExistsReferrer *子テーブルの存在条件(相関サブクエリ)
(Middle)
→ 一番利用頻度の高いSubQuery
o InScopeRelation*子(親)テーブルの集合との突き合わせ条件
(Middle)
→ 親テーブルの場合はInnerJoinしてるのと同じ
→ 子テーブルの場合はExistsSubQueryと結果は同じ
o ScalarCondition *基点テーブルのスカラ値比較
(Platinum)
→ 0.8.8より
cb.specify().derivedMemberLoginList().max(new SubQuery<MemberLoginCB>() {
public void query(MemberLoginCB subCB) {
subCB.specify().columnLoginDatetime();
subCB.query().setLoginMobileFlg_Equal_False();
}
}, "LATEST_LOGIN_DATETIME");
cb.query().queryMemberStatus().inline().setDisplayOrder_Equal(2);
cb.query().queryMemberStatus().on().setDisplayOrder_Equal(2);
cb.query().existsPurchaseList(new SubQuery<PurchaseCB>() {
public void query(PurchaseCB subCB) {
subCB.query().setPurchaseCount_GreaterThan(2);
}
});
cb.query().inScopeMemberStatus(new SubQuery<MemberStatusCB>() {
public void query(MemberStatusCB subCB) {
subCB.query().setDisplayOrder_GreaterThan(2);
}
});
cb.query().inScopePurchaseList(new SubQuery<PurchaseCB>() {
public void query(PurchaseCB subCB) {
subCB.query().setPurchaseCount_GreaterThan(2);
}
});
cb.query().scalar_Equal().max(new SubQuery<MemberCB>() {
public void query(MemberCB subCB) {
subCB.specify().columnMemberBirthday();
subCB.query().setMemberStatusCode_Equal_Formalized();
}
});