簡體   English   中英

Codeigniter聯接,分組並從一個表計數行

[英]Codeigniter join, group by and count a row from one table

我在這段代碼中苦苦掙扎,以從book_listing(全部)獲得計數結果,這是預訂總數。 從結果來看,有些是正確的,但有些乘以3左右。

這是我的代碼:

$this->db->where('list_status', 1)
         ->where('list_date >=', date('Y-m-d'))
         ->order_by("user_listings.list_created", "desc")
         ->limit(18, null)
         ->select('*, COUNT(user_bookings.book_listing) as totally')
         ->from('user_listings')
         ->join('user_images', 'user_images.img_listing = user_listings.list_reference')
         ->join('user_states', 'user_states.state_id = user_listings.list_state')
         ->join('user_bookings', 'user_bookings.book_listing = user_listings.list_reference', 'left')
         ->group_by('user_listings.list_reference')
         ->get();

感謝任何幫助:)

所以我解決了這個問題,由於要獲取多個圖像,而只需要返回一個圖像,因此user_images表似乎引起了問題。

$this->db->where('list_status', 1)
         ->where('list_date >=', date('Y-m-d'))
         ->order_by("user_listings.list_created", "desc")
         ->limit(18, null)
         ->select('user_listings.*,image.*,user_states.*')
         ->select('COUNT(user_bookings.book_listing) as totalBooked')
         ->from('user_listings')
         ->join('user_bookings', 'user_bookings.book_listing = user_listings.list_reference', 'left')
         ->join('(SELECT * FROM user_images WHERE user_images.img_key IN(SELECT MIN(user_images.img_key) FROM user_images GROUP BY user_images.img_listing)) AS image',
                                            'image.img_listing = user_listings.list_reference')
         ->join('user_states', 'user_states.state_id = user_listings.list_state')
         ->group_by('user_listings.list_reference')
         ->get();

基本上,我必須從連接表中為user_images 希望它可以幫助其他人:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM