2014-01-29 17 views
0

我有以下查詢:如何從現場得到的計數在另一個表 - MySQL的

SELECT t.id, t.name, t.tags, t.privacy, t.about, t.views, t.registered, t.updated, i.image_id 
       FROM x_trybes t 
       LEFT JOIN x_trybe_images i 
       ON t.id = i.trybe_id 

除此之外查詢我有一個名爲表:

x_trybes_likes,它具有以下結構

id | trybe_id | PROFILE_ID

ID是主鍵 trybe ID爲這個表和x_trybes & x_trybe_images表 和簡檔ID,它涉及誰已經喜歡一個x_trybe用戶之間的關係。

我該如何追加我的查詢來促成計數,例如4人喜歡生物學試驗。即x_trybes_likes表中有4行?誰能提供解決方案?

我已經試過這一點,但它返回前行出於某種原因:\:

SELECT t.id, t.name, t.tags, t.privacy, t.about, t.views, t.registered, t.updated, i.image_id, COUNT(l.trybe_id) AS likes 
       FROM x_trybes t 
       LEFT JOIN x_trybe_images i 
       ON t.id = i.trybe_id 
       LEFT JOIN x_trybes_likes l 
       ON t.id = l.trybe_id 

感謝

回答

1

你缺少一個GROUP BY

給這個一展身手:

SELECT t.id, 
     t.name, 
     t.tags, 
     t.privacy, 
     t.about, 
     t.views, 
     t.registered, 
     t.updated, 
     i.image_id, 
     COUNT(distinct l.id) AS likes 
       FROM x_trybes t 
       LEFT JOIN x_trybe_images i 
       ON t.id = i.trybe_id 
       LEFT JOIN x_trybes_likes l 
       ON t.id = l.trybe_id 
group by t.id, 
     t.name, 
     t.tags, 
     t.privacy, 
     t.about, 
     t.views, 
     t.registered, 
     t.updated, 
     i.image_id; 
+0

感謝您的答覆湯姆!我需要考慮這一點,而不是之前用Group By擦過的,是它不工作的原因?我可以接受答案 – cwiggo

+1

無後顧之憂。這裏有一些關於'COUNT'的更多信息(它也有一些關於'GROUP BY'的信息):http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_count。祝你好運! –

相關問題