Mysql 多表上的CakePHP非重复查询

Mysql 多表上的CakePHP非重复查询,mysql,cakephp,left-join,distinct,Mysql,Cakephp,Left Join,Distinct,我需要在以下查询中执行不同的搜索: $listings = $this->Listing->query("SELECT DISTINCT(Listing.listnumber),Listing.*, ClientEvent.*, Client.*, UserLog.*, Agent.* FROM listings Listing LEFT JOIN client_events ClientEvent ON ClientEvent.lis

我需要在以下查询中执行不同的搜索:

$listings = $this->Listing->query("SELECT DISTINCT(Listing.listnumber),Listing.*, ClientEvent.*, Client.*, UserLog.*, Agent.* FROM listings Listing
                        LEFT JOIN client_events ClientEvent ON ClientEvent.listnumber = Listing.listnumber
                        LEFT JOIN clients Client ON Client.clnt_id = ClientEvent.clnt_id
                        LEFT JOIN user_logs UserLog ON UserLog.ul_item_id = Listing.listnumber
                        LEFT JOIN agents Agent ON Agent.agnt_id = Listing.agnt_id
                        WHERE Listing.off_id = '{$off_id}' AND (UserLog.ul_type = 'listing.new_listing' OR Listing.listnumber LIKE '3330%')");
然而,这给了我正确的结果,但重复。我需要明确的结果


有什么想法吗?

这是用于导出到Excel的库存报告。您的答案有道理,但不符合word,因为它在视图中调用时会给出一个空结果您要从查询中删除此条件:其中Listing.off_id='{$off_id}'和(UserLog.ul_type='Listing.new_Listing'或Listing.listnumber,如'3330%'),因此,我们发现数据在过滤器后面,这可以而且应该通过使用模型关联而不是像这样的简单查询来完成。
    $listings = $this->Listing->query("SELECT Listing.listnumber FROM listings Listing
                            LEFT JOIN client_events ClientEvent ON ClientEvent.listnumber = Listing.listnumber
                            LEFT JOIN clients Client ON Client.clnt_id = ClientEvent.clnt_id
                            LEFT JOIN user_logs UserLog ON UserLog.ul_item_id = Listing.listnumber
                            LEFT JOIN agents Agent ON Agent.agnt_id = Listing.agnt_id
                            WHERE Listing.off_id = '{$off_id}' AND (UserLog.ul_type = 'listing.new_listing' OR Listing.listnumber LIKE '3330%') group by Listing.listnumber");
----------------------
Put your extar column not a tablename.*...

    $listings = $this->Listing->query("SELECT Listing.listnumber, colname1,.. FROM listings Listing
                            LEFT JOIN client_events ClientEvent ON ClientEvent.listnumber = Listing.listnumber
                            LEFT JOIN clients Client ON Client.clnt_id = ClientEvent.clnt_id
                            LEFT JOIN user_logs UserLog ON UserLog.ul_item_id = Listing.listnumber
                            LEFT JOIN agents Agent ON Agent.agnt_id = Listing.agnt_id
                            WHERE Listing.off_id = '{$off_id}' AND (UserLog.ul_type = 'listing.new_listing' OR Listing.listnumber LIKE '3330%') group by Listing.listnumber");