sql >> Database >  >> RDS >> Mysql

subsonic 2 join op meerdere kolommen

Met SubSonic 2 uit de doos kan dat niet.

Dit gezegd hebbende, heb je de volgende alternatieven:

SubSonic verlengen

Als u al bekend bent met SubSonic, kunt u overwegen om meerdere kolommen toe te voegen aan SubSonic zelf.

Gebruik weergaven, opgeslagen procedures, tabelfuncties

Als je niet met SubSonics-code wilt knoeien, gebruik dan views, opgeslagen procedures en/of tabelfuncties binnen de sql-server. SubSonic maakt het gemakkelijk om toegang te krijgen tot gegevens uit weergaven en opgeslagen procedures.

Gebruik een InlineQuery

InlineQuery stelt je in staat om elke sql uit te voeren - als het een optie is om kale sql in je code te hebben.

Lelijke oplossing met InlineQuery

Als u absoluut uw zoekopdracht met SubSonic wilt maken, kunt u dit proberen:

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

Bouw de SQL-instructie en vervang de parameternamen:

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

Gebruik dan s met een InlineQuery.




  1. Verzachtende indexfragmentatie

  2. Hoe kan ik verbinding maken met MySQL op een WAMP-server?

  3. Maak een Postgres-database met python

  4. Flask-SQLAlchemy - Wanneer worden de tabellen/databases gemaakt en vernietigd?