SQL Выбор основных записей и отображение количества подробных записей для каждого

У меня есть основная таблица и таблица подробностей, подробности связаны с основной записью в ссылке FK.

I необходимо отобразить все данные из главной таблицы и соответствующее количество деталей для каждой записи, т.е.

MASTER TABLE
ID Name  Age
1  John  15
2  Jane  14 
3  Joe   15

DETAIL
MasterID Subjects
1        Trigonometry
1        Chemistry
1        Physics
1        History
2        Trigonometry
2        Physics

Таким образом, нечто подобное можно было бы сделать с помощью запроса Hql или запроса nhibernate-linq

public abstract class CriteriaQuery<T>: IQuery<T>
{
    [Inject]
    public ISessionFactory SessionFactory { protected get; set; }

    protected ISession Session
    {
        get { return SessionFactory.GetCurrentSession(); }
    }

    protected abstract ICriteria Configure(ICriteria criteria);

    [Transaction]
    public virtual IList<T> List()
    {
        var criteria = Session.CreateCriteria(typeof (T));

        return Configure(criteria)
                 .List<T>();
    }

    [Transaction]
    public virtual T Single()
    {
        return Configure(Session.CreateCriteria(typeof(T)))
                .UniqueResult<T>();
    }
}

, и здесь запрос, специфичный для домена, будет выглядеть так:

public interface IGetVideosQuery: IQuery<Video>
{
    IGetVideosQuery Page(int index);
    IGetVideosQuery PageSize(int pageSize);

    IGetVideosQuery AllTime { get; }
    IGetVideosQuery Today { get; }
    IGetVideosQuery LastWeek { get; }
}

какие-либо мысли по этому поводу? возможные проблемы, с которыми я могу столкнуться? Спасибо!

7
задан Sebastian Piu 21 October 2010 в 20:01
поделиться