Вложенный запрос в дозвуковой - PullRequest
0 голосов
/ 24 февраля 2012

Как мне сформировать этот запрос с помощью дозвукового?

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

1 Ответ

0 голосов
/ 24 февраля 2012

Вы можете переписать ваш запрос следующим образом:

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