Mysql
 sql >> Baza danych >  >> RDS >> Mysql

poddźwiękowe 2 łączenie na wielu kolumnach

Z SubSonic 2 po wyjęciu z pudełka nie możesz.

To powiedziawszy, masz następujące alternatywy:

Rozszerz SubSonic

Jeśli znasz już SubSonic, możesz rozważyć dodanie złączeń wielokolumnowych do samego SubSonic.

Użyj widoków, procedur składowanych, funkcji tabel

Jeśli nie chcesz zadzierać z kodem SubSonics, użyj widoków, procedur składowanych i/lub funkcji tabel na serwerze sql. SubSonic ułatwia dostęp do danych z widoków i procedur składowanych.

Użyj InlineQuery

InlineQuery pozwala na wykonanie dowolnego sql - jeśli jest to opcja, aby mieć goły sql w kodzie.

Brzydkie obejście z InlineQuery

Jeśli absolutnie chcesz utworzyć zapytanie za pomocą SubSonic, możesz spróbować tego:

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

Zbuduj instrukcję SQL i zastąp nazwy parametrów:

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

Następnie użyj s z InlineQuery.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy jest jakiś powód, aby martwić się o kolejność kolumn w tabeli?

  2. Czy jest wymawiane jako „S-Q-L” czy „Sequel”?

  3. Jak zapytanie może pomnożyć 2 komórki dla każdego wiersza MySQL?

  4. JSON_STORAGE_SIZE() – Znajdź rozmiar przechowywania dokumentu JSON w MySQL

  5. PHP:mysql_fetch_array() oczekuje, że parametr 1 będzie zasobem, podana wartość logiczna