2012-02-24 78 views
0

如何使用亞音速形成此查詢?亞音速嵌套查詢

SELECT A.categoryname, 
    (SELECT COUNT(*) 
    FROM items B 
    WHERE a.categoryid = b.categoryid) AS TOT 
FROM category A 

回答

0

你可以重寫查詢是這樣的:

SELECT A.categoryname, COUNT(B.categoryid) AS TOT 
FROM category A LEFT OUTER JOIN items B ON A.categoryid = B.categoryid 
GROUP BY A.id, A.categoryname 

如果沒有類別具有相同的名稱,則可以省略A.id列。

然後用亞音速類似這樣(的確切語法可能會有所不同...):

DAL.DB.Select(
    Aggregate.GroupBy(DAL.A.categorynameColumn), 
    Aggregate.GroupBy(DAL.A.idColumn) 
    Aggregate.Count(DAL.B.categoryidColumn, "Tot") 
    ) 
.From<DAL.A>().LeftOuterJoin(DAL.B.categoryidColumn, DAL.A.categoryidColumn)