Hi, 2011/5/4 passkey1...@gmail.com <passkey1...@gmail.com>: > Hi there, > I'd like to ask you guys a question when you have to deal with a VERY > complex query. > Use case: > An e-commerce website with integrated social network. User could have many > friends on that website. For each user, I have to list all products which: > - are marked as featured (sponsored products, for instance). > - have already been purchased by at least one of his friends. > - he did not purchase yet. > .... > - are available in his country > .... > and so on. > > For these kinds of complex query, I would not imagine that a SQL query is an > appropriate solution. My thought was to make a simple query, then do some > processing in php to filter out all records that do not satisfy the > condition. > > How did you guys think of that solution? Have you ever dealt with such kind > of query?
I usually do, so that I use intersections $this->companys = Doctrine_Core::getTable('Company')->getCompanysHydrate(); $this->companys_array = array(); foreach ($this->companys as $this->company) { $this->companys_array[] = $this->company['id']; } $this->companys_search = Doctrine_Core::getTable('Company')->getCompanysByNameLikeHydrate($this->search); $this->companys_search_array = array(); foreach ($this->companys_search as $this->company_search) { $this->companys_search_array[] = $this->company_search['id']; } (Other criteria) Now we take a common part $this->company_result_ids = $this->companys_array; if ($this->search) { $this->company_result_ids = array_intersect($this->company_result_ids, $this->companys_search_array); } and now the result of the common part $this->companys = Doctrine_Core::getTable('Company')->getCompanysByIds($this->company_result_ids); > > Thanks, > Tuan > > -- > If you want to report a vulnerability issue on symfony, please send it to > security at symfony-project.com > > You received this message because you are subscribed to the Google > Groups "symfony users" group. > To post to this group, send email to symfony-users@googlegroups.com > To unsubscribe from this group, send email to > symfony-users+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/symfony-users?hl=en > -- Best regards, Michal http://eventhorizon.pl/ -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en