sql >> データベース >  >> RDS >> Mysql

LINQtoSQLの複数のテーブルが外部結合を残しました

    LINQを使用して左外部結合を実装する方法は次のとおりです。 GroupJoin を使用する必要があります (join...into 構文):

    from d in context.dc_tpatient_bookingd
    join bookingm in context.dc_tpatient_bookingm
         on d.bookingid equals bookingm.bookingid into bookingmGroup
    from m in bookingmGroup.DefaultIfEmpty()
    join patient in dc_tpatient
         on m.prid equals patient.prid into patientGroup
    from p in patientGroup.DefaultIfEmpty()
    // ... other joins here
    where d.processid == 6 &&
          ((m.branchId == 1 && d.DestinationBranchID == 0) ||
           (d.DestinationBranchID == 1 && d.sendstatus == "R"))
    // ... other conditions here
    orderby d.priority descending, m.bookingid
    select new {
       d.bookingid,
       d.labid,
       d.processid,
       p.prid,
       p.prno,
       m.bookingid // need for grouping
    } into x
    group x by x.bookingid into g
    select g
    

    このクエリは3つのテーブルを結合します。残りのテーブルも同じ方法で結合できます。



    1. MariaDBで特定の文字のASCIIコードを返す2つの方法

    2. IN値リストによる注文

    3. Postgres9.1のDockerコンテナがポート5432をホストに公開していません

    4. Driver.getConnectionは、SQLServerドライバーとJava1.6.0_29を使用してハングします