如何使用亚音速形成此查询?
SELECT A.categoryname,
(SELECT COUNT(*)
FROM items B
WHERE a.categoryid = b.categoryid) AS TOT
FROM category A
答案 0 :(得分: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
列。
然后使用与此类似的SubSonic(确切的语法可能会有所不同......):
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)