2013-11-25 53 views
0

嗨即時通訊問題計算羣組成員。我現在的查詢返回給定用戶所屬的每個組的一行。但是我想讓成員的數量也顯示出來。這三個表即時通訊使用這個樣子的:羣組中的SQLite計數成員

enter image description here

下面是該查詢即時與合作: 查找範圍編輯!

如果我忽略了代碼的COUNT部分,我收到了2組我期待的內容。但是當我在COUNT中添加它時,它只返回一個成員= 2的組。所以它看起來很重要,但我不確定它是否是正確的答案。

在此先感謝!

+0

看起來像你缺少一個組by條款 – Strawberry

+0

我試過GROUP BY gp.group_id_foreign。哪個返回這兩個組,但每個成員數爲1,這不是正確的結果 –

+1

我想你會想通過g.something進行分組。如果你仍然在努力發佈適當的DDL和/或sqlfiddle與期望的結果 – Strawberry

回答

1

假設你每一個與用戶1關聯組中的參與者的總數之後是......

SELECT gu1.group_id_foreign 
    , COUNT(*) ttl 
    FROM group_participants gu1 
    JOIN group_participants gu2 
    ON gu2.group_id_foreign = gu1.group_id_foreign 
WHERE gu1.user_id_foreign = 1 
GROUP 
    BY gu1.group_id_foreign; 

http://sqlfiddle.com/#!2/821ad/1

順便說一句,在group_participants表中的列_id出現服務沒有目的,而且,對於我的思維方式,你的命名規則是瘋狂的! ;-)

+0

_id僅作爲主鍵。我甚至不知道我是否必須使用它,但是是的。它不會傷害它:)並且謝謝。您發佈的代碼有效! –

+0

你已經有了一個完全充足的自然鑰匙。您應該將其設置爲PRIAMRY。 ;-) – Strawberry

+0

嗯既不是user_id_foreign或group_id_foreign是唯一的,你可以在小提琴中看到所以這不會工作。我需要_id –