2012-10-11 29 views
0

我需要在下面的查詢做一個獨特的搜索DISTINCT查詢:CakePHP的多個表

$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%')"); 

然而,這給了我正確的結果,但重複。我需要DISTINCT結果。

任何想法?

回答

-1
$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"); 
+0

這是用於導出到Excel的股票報告。你的回答有道理,但沒有說話,因爲在視圖 – learner23

+0

中調用時,你會從查詢中移除這個條件:WHERE Listing.off_id ='{$ off_id}'AND(UserLog.ul_type ='listing.new_listing 'OR Listing.listnumber LIKE'3330%') – jainvikram444

+0

因此,我們發現數據在過濾後出現 – jainvikram444