Group By Issues with multiple tables

12 views
Skip to first unread message

Pravin Yadav

unread,
Sep 17, 2018, 7:01:24 AM9/17/18
to django...@googlegroups.com
Hello Friends,

I want to use the group by based on "Itinerary ID". I hope that "Values" keywords is using for the "Group By" but when I'm using the "Values" keywords  for group by. then i'm getting the error for fields name. Like:- fields name:--- user_id, primary_image, etc

'user_id','primary_image','country__url_alias','country__title','itinerarycity__city__url_alias','itinerarycity__city__image','itinerarycity__city__title'


My Query Below:-

itinerarydata = Itinerary.objects.filter(Q(title__iexact=searchstr, publish=1) | Q(country__title__iexact=searchstr) | Q(itinerarycity__city__title__iexact=searchstr))

itinerarylistdata = itinerarydata.select_related('country').select_related('itinerarycity').values('id','title','user_id','primary_image','country__url_alias','country__title','itinerarycity__city__url_alias','itinerarycity__city__image','itinerarycity__city__title').order_by('-id')



Print Query:-


SELECT `itinerary_itinerary`.`id`, `itinerary_itinerary`.`title`, `itinerary_itinerary`.`user_id`, `itinerary_itinerary`.`primary_image`, `continents_country`.`url_alias`, `continents_country`.`title`, `continents_city`.`url_alias`, `continents_city`.`image`, `continents_city`.`title` FROM `itinerary_itinerary` LEFT OUTER JOIN `itinerary_itinerary_country` ON (`itinerary_itinerary`.`id` = `itinerary_itinerary_country`.`itinerary_id`) LEFT OUTER JOIN `continents_country` ON (`itinerary_itinerary_country`.`country_id` = `continents_country`.`id`) LEFT OUTER JOIN `itinerary_itinerarycity` ON (`itinerary_itinerary`.`id` = `itinerary_itinerarycity`.`itinerary_id`) LEFT OUTER JOIN `continents_city` ON (`itinerary_itinerarycity`.`city_id` = `continents_city`.`id`) WHERE ((`itinerary_itinerary`.`publish` = 1 AND `itinerary_itinerary`.`title` LIKE south africa) OR `continents_country`.`title` LIKE south africa OR `continents_city`.`title` LIKE south africa) ORDER BY `itinerary_itinerary`.`id` DESC

but I want to make the group by like:

WHERE ((`itinerary_itinerary`.`publish` = 1 AND `itinerary_itinerary`.`title` LIKE south africa) OR `continents_country`.`title` LIKE south africa OR `continents_city`.`title` LIKE south africa) Group By  `itinerary_itinerary`.`id` ORDER BY `itinerary_itinerary`.`id` DESC



kindly solve my issues.

Thanks
Pravin Yadav



Reply all
Reply to author
Forward
0 new messages