Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Не могу придумать, как сделать запрос [RSS Feed]

#1 Окт. 4, 2012 14:18:20

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не могу придумать, как сделать запрос

Есть модель

class Person(models.Model):
    territory=models.ForeignKey(Territory, null=True, blank=True)
    list_num=models.IntegerField(u'Номер', blank=True, null=True)
class Territory(models.Model):
   name=CharField()

Как одним запросом получить список Территория : Количество граждан в этой территории, у которых list_num>1
???



Отредактировано FishHook (Окт. 4, 2012 14:19:10)

Офлайн

#2 Окт. 4, 2012 19:01:31

cpu
От:
Зарегистрирован: 2011-12-29
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Не могу придумать, как сделать запрос

Летят Холмс с Ватсоном на воздушном шаре. И спят в полёте. Просыпаются над какой-то незнакомой землёй, видят - внизу какой-то человек коров пасёт. Снизились они и спрашивают мужика:
- Скажите, сэр, где мы находимся?
- На воздушном шаре.
- Спасибо, сэр, - и летят вверх. Холмс задумчиво говорит:
- Интересная местность, Ватсон! Программист пасёт коров!
- Холмс, а с чего вы взяли, что он программист?
- Это элементарно! Во-первых, он долго думал над ответом. Во-вторых, его ответ был абсолютно точен. В-третьих - абсолютно бесполезен!

SELECT t.name, count(*) FROM territory as t JOIN person as p ON (t.id = p.territory_id) WHERE (p.list_num > 1) order by t.name;
Как-то так.



Офлайн

#3 Окт. 5, 2012 05:33:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не могу придумать, как сделать запрос

cpu
Летят Холмс с Ватсоном на воздушном шаре. И спят в полёте. Просыпаются над какой-то незнакомой землёй, видят - внизу какой-то человек коров пасёт. Снизились они и спрашивают мужика:
- Скажите, сэр, где мы находимся?
- На воздушном шаре.
- Спасибо, сэр, - и летят вверх. Холмс задумчиво говорит:
- Интересная местность, Ватсон! Программист пасёт коров!
- Холмс, а с чего вы взяли, что он программист?
- Это элементарно! Во-первых, он долго думал над ответом. Во-вторых, его ответ был абсолютно точен. В-третьих - абсолютно бесполезен!

SELECT t.name, count(*) FROM territory as t JOIN person as p ON (t.id = p.territory_id) WHERE (p.list_num > 1) order by t.name;
Как-то так.

Так я тоже умею. Мне бы через дебильный джанговский ORM такой запрос реализовать!



Офлайн

#4 Окт. 9, 2012 15:11:20

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

Не могу придумать, как сделать запрос

Person.objects.filter(list_num__gt=1).values('territory__name').annotate(models.Count('id'))



Офлайн

  • Начало
  • » Django
  • » Не могу придумать, как сделать запрос[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version