DBFluteのCBのSubQuery一覧

@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より
// DerivedReferrer
cb.specify().derivedMemberLoginList().max(new SubQuery<MemberLoginCB>() {
    public void query(MemberLoginCB subCB) {
        subCB.specify().columnLoginDatetime();// *Point!
        subCB.query().setLoginMobileFlg_Equal_False();
    }
}, "LATEST_LOGIN_DATETIME");
// InlineView
cb.query().queryMemberStatus().inline().setDisplayOrder_Equal(2);

// OnClause
cb.query().queryMemberStatus().on().setDisplayOrder_Equal(2);
// ExistsReferrer
cb.query().existsPurchaseList(new SubQuery<PurchaseCB>() {
    public void query(PurchaseCB subCB) {
        subCB.query().setPurchaseCount_GreaterThan(2);
    }
});
// InScopeRelation(親)
cb.query().inScopeMemberStatus(new SubQuery<MemberStatusCB>() {
    public void query(MemberStatusCB subCB) {
        subCB.query().setDisplayOrder_GreaterThan(2);
    }
});
// InScopeRelation(子)
cb.query().inScopePurchaseList(new SubQuery<PurchaseCB>() {
    public void query(PurchaseCB subCB) {
        subCB.query().setPurchaseCount_GreaterThan(2);
    }
});
// ScalarCondition
cb.query().scalar_Equal().max(new SubQuery<MemberCB>() {
    public void query(MemberCB subCB) {
        subCB.specify().columnMemberBirthday(); // *Point!
        subCB.query().setMemberStatusCode_Equal_Formalized();
    }
});