2010-07-22 3 views
0

.net에서 사용할 쿼리를 만들고 싶습니다. 당신은 SQL 쿼리를 볼 수 있습니다, 하나는아음속 : Selfjoin 쿼리가 필요합니다

SELECT DISTINCT 
    a2.AccountID AS BID, 
    a2.AccountName AS Brand 
FROM 
    Account a 
    INNER JOIN Account a2 ON a.ParentID = a2.AccountID 
WHERE 
    a.AccountTypeID = 6 
ORDER BY 
    Brand 

이 제발 도와주세요에 해당하는 아음속 쿼리를 나에게 제공 할 수 있습니다.

답변

0

음파 2 또는 3?

당신은 항상 멋진 백도어를 가지고 있습니다. 3.x를

에서

2.x 및 CodingHorror에서 그것은 InlineQuery라고

예컨대 :

var result = DB.Query().ExecuteReader("SELECT DISTINCT 
     a2.AccountID AS BID, 
     a2.AccountName AS Brand 
    FROM Account a 
    INNER JOIN Account a2 ON a.ParentID = a2.AccountID 
    WHERE a.AccountTypeID = ?accounttypeid 
    ORDER BY Brand", 6); 

당신 때문에 구문 검사와 SQL 변환의 유창한 인터페이스를 유지하려는 경우

. 여기에 내가 (음속 2.2)

 DataTable result = DB.Select(
       "a1." + Account.Columns.AccountId + " as BID", 
       "a2." + Account.Columns.AccountName + " as Brand") 
      .From(Account.Schema.QualifiedName + " a1") 
      .InnerJoin(Account.Schema.QualifiedName + " a2", 
         "a2." + Account.Columns.account_id, 
       "a1", "a1." + Account.Columns.parent_id) 
      .Where("a1." + Account.Columns.AccountTypeId).IsEqualTo(6) 
      .OrderAsc("a2." + Account.Columns.AccountName) 
      .ExecuteDataSet().Tables[0]; 

생각할 수있는 또 다른 방법이다 그러나 나는 이런 짓을 결코 나는 그것을 확인하지 않았습니다. 하지만 어쩌면 작동 할 수도 있습니다.