Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

junção subsônica 2 em várias colunas


Com o SubSonic 2 pronto para uso, você não pode.

Dito isso, você tem as seguintes alternativas:

Estender SubSonic

Se você já estiver familiarizado com o SubSonic, considere adicionar junções de várias colunas ao próprio SubSonic.

Usar visualizações, procedimentos armazenados, funções de tabela

Se você não quiser mexer com o código SubSonics, use visualizações, procedimentos armazenados e/ou funções de tabela dentro do sql server. O SubSonic facilita o acesso a dados de visualizações e procedimentos armazenados.

Usar uma consulta em linha

InlineQuery permite que você execute qualquer sql - se for uma opção ter sql simples em seu código.

Solução feia com InlineQuery

Se você realmente deseja criar sua consulta com o SubSonic, tente isto:
SqlQuery q = DB.Select()
  .From<TableA>()
  .CrossJoin<TableB>()
  .Where(TableA.YearColumn).IsEqualTo(0)
  .And(TableA.MonthColumn).IsEqualTo(0)
  .And(TableA.UseridColumn).IsEqualTo(0);

Crie a instrução SQL e substitua os nomes dos 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);

Em seguida, use s com um InlineQuery.