sql >> Base de Datos >  >> RDS >> Mysql

unión subsónica 2 en varias columnas

Con SubSonic 2 listo para usar, no puede.

Dicho esto, tienes las siguientes alternativas:

Ampliar SubSonic

Si ya está familiarizado con SubSonic, puede considerar agregar uniones de varias columnas a SubSonic.

Usar vistas, procedimientos almacenados, funciones de tabla

Si no quiere meterse con el código de SubSonics, use vistas, procedimientos almacenados y/o funciones de tabla dentro del servidor sql. SubSonic facilita el acceso a datos desde vistas y procedimientos almacenados.

Usar una consulta en línea

InlineQuery le permite ejecutar cualquier sql, si es una opción tener sql desnudo en su código.

Solución fea con InlineQuery

Si absolutamente desea crear su consulta con SubSonic, puede probar esto:

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

Genere la instrucción SQL y reemplace los nombres de los parámetros:

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);

Luego use s con InlineQuery.