From d5072ebbd153acced825a4c683152956ff0e812b Mon Sep 17 00:00:00 2001 From: ankitjavalkarwork Date: Wed, 29 Oct 2014 19:00:33 +0530 Subject: [PATCH] [#2302] Fix Report Builder reports when fetching info from child tables --- frappe/model/db_query.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index f3a9459744..4e9415d03b 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -72,7 +72,12 @@ class DatabaseQuery(object): self.fields.append(t + ".name as '%s:name'" % t[4:-1]) # query dict - args.tables = ', '.join(self.tables) + args.tables = self.tables[0] + + # left join parent, child tables + for tname in self.tables[1:]: + args.tables += " left join " + tname + " on " + tname + '.parent = ' + self.tables[0] + '.name' + if self.or_conditions: self.conditions.append("({0})".format(" or ".join(self.or_conditions))) args.conditions = ' and '.join(self.conditions) @@ -165,10 +170,6 @@ class DatabaseQuery(object): self.build_filter_conditions(self.filters, self.conditions) self.build_filter_conditions(self.or_filters, self.or_conditions) - # join parent, child tables - for tname in self.tables[1:]: - self.conditions.append(tname + '.parent = ' + self.tables[0] + '.name') - # match conditions if not self.ignore_permissions: match_conditions = self.build_match_conditions()