8,493
社区成员




select
top 10
s.ID,s.CreateTime,
count(sc.ID) SCount,
count(p.ID) PCount,
count(r.ID) RCount
from
s
left join sc on s.id=sc.SubjectID
left join p on s.id=p.SubjectID
left join r on s.id=r.SubjectID
group by
s.ID,s.CreateTime
order by s.CreateTime desc
var data = (from s in dbContent.[s]
join sc in dbContent.[sc] on s.ID.ToString() equals sc.SubjectID.ToString() into scdata
from sc in scdata.DefaultIfEmpty()
join p in dbContent.[p] on s.ID.ToString() equals p.SubjectID.ToString() into pdata
from p in pdata.DefaultIfEmpty()
join r in dbContent.[r] on s.ID.ToString() equals r.SubjectID.ToString() into rdata
from r in rdata.DefaultIfEmpty()
orderby s.CreateTime descending
select new
{
s.ID,
SCount = scdata.Count(),
PCount = pdata.Count(),
RCount = rdata.Count()
}).Skip(0).Take(10);