Skip to content

Multi-table queries

SQLBuilder

kit is a SQLBuilder instance.

c#
var kit = DBCash.useSQL(0);
var dt = kit.select("k.MC_MainName ,k.MC_Code ,p.KP_Info ,p.KP_Name ,d.KD_Name ,d.KD_Code,k.SYS_Deleted")
    .from("kb_manconf k left join kb_postinfo p on k.KB_PostINFO_FK=p.KB_PostINFOOID")
    .join("left join kb_deptinfo d on k.KB_DeptInfo_FK =d.KB_DeptInfoOID ")
    .where("k.MC_Code", para.account)
    .query();

SQLClip

Requires entity classes with attributes. Use join / on for relationships.

c#
var cmd= clip.from<HHDutyItem>(out var a)
    .join<HHGoodsBag>(out var b)
    .on(() => a.HH_GoodsBag_FK == b.HH_GoodsBagOID)
    .where(() => a.Di_Name == "1")
    .where(()=>b.Gb_Idx==id)
    .whereIn(()=>a.Di_Idx, new List<int?> { 1,3 })
    .select(()=> new { a.Di_Code,a.Di_Idx,b.Gb_Idx })
    .toSelect();

Example

c#
var cmd = kit
    .select("a")
    .from("tableA as a")
    .join("left join","b on a.id=b.id", (t) => {
        t.select("name")
            .from("student")
            .where("id=1");
    })
    .top(1)
    .toSelect();