Мы хотим получить родительского ребенка таким образом, чтобы он дал мне 10 последних родителей, у каждого из которых есть только один последний дочерний отчет.
Например:
Category
- id
- name
- created_date
Item
- id
- name
- category
- created_date
Используя указанную выше структуру модели, я хотел бы получить последние 10 категорий вместе с последним дочерним элементом для каждой категории.
Имея только один запрос к серверу, я хотел бы получить доступ ко всем данным.
Category1.name, Category1.id, LatestItemForCat1.name, LatestItem1ForCat1.created_date
Category2.name, Category2.id, LatestItemForCat2.name, LatestItem1ForCat2.created_date
Category3.name, Category3.id, LatestItemForCat3.name, LatestItem1ForCat3.created_date
Какой оптимизированный способ добиться этого, используя django ORM.
Этого можно добиться с помощью следующего SQL-запроса. Я бы предпочел использовать django ORM для решения этой проблемы. Или лучше sql запрос.
select c.name, c.id, i.name, i.created_date
from
category c
inner join
item i
on c.id = i.category_id
where i.id = (select id from item order by created_date desc limit 0,1)
limit 10