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

subsonic2が複数の列に結合

    SubSonic 2をそのまま使用すると、できません。

    つまり、次の選択肢があります。

    SubSonicを拡張する

    すでにSubSonicに精通している場合は、SubSonic自体に複数列の結合を追加することを検討してください。

    ビュー、ストアドプロシージャ、テーブル関数を使用する

    SubSonicsコードをいじりたくない場合は、SQLサーバー内でビュー、ストアドプロシージャ、テーブル関数を使用してください。 SubSonicを使用すると、ビューやストアドプロシージャからデータに簡単にアクセスできます。

    InlineQueryを使用する

    InlineQuery コードに裸のSQLを含めるオプションの場合は、任意のSQLを実行できます。

    InlineQueryの醜い回避策

    SubSonicを使用してクエリを作成したい場合は、次のことを試してください。

    SqlQuery q = DB.Select()
      .From<TableA>()
      .CrossJoin<TableB>()
      .Where(TableA.YearColumn).IsEqualTo(0)
      .And(TableA.MonthColumn).IsEqualTo(0)
      .And(TableA.UseridColumn).IsEqualTo(0);
    

    SQLステートメントを作成し、パラメーター名を置き換えます。

    string s = q.BuildSqlStatement();
    s = s.Replace(q.Constraints[0].ParameterName, TableB.YearColumn.QualifiedName);
    s = s.Replace(q.Constraints[1].ParameterName, TableB.MonthColumn.QualifiedName);
    s = s.Replace(q.Constraints[2].ParameterName, TableB.UserIdColumn.QualifiedName);
    

    次に、InlineQueryでsを使用します。




    1. PostgreSQLシステムカタログを理解して読む

    2. MSSQLエラー'基になるプロバイダーがOpenで失敗しました'

    3. SQLServerの@@SERVICENAMEとは何ですか?

    4. DATEFROMPARTS()SQL Server(T-SQL)の例