2012-08-23 74 views
0

我有一個名爲表「喜歡」這種結構: ID - 自動生成的編號, bywho - 將喜歡的用戶, 尖 - - 即有喜歡的人, 識別用戶的喜歡select count作爲計算列?

我」類別中號試圖讓最喜歡的用戶(標識),我的問題是一個列表:

我需要生成喜歡在列表中的計算列的ammount的...

這裏是我的嘗試:

SELECT u.bywho,u.identifier COUNT(DISTINCT inv_by.identifier) AS lol 
FROM likes u 
LEFT JOIN likes inv_by ON u.identifier = inv_by.identifier 
WHERE inv_by.identifier= $this->who AND tip='profil' 
GROUP BY u.identifier ORDER BY lol DESC 
+1

這是mysql嗎?請標記。 – StuartLC

+0

是的,它的mysql –

+0

你可以定義'計算列'?除了缺少逗號之外,查詢看起來沒問題。我不明白你爲什麼要過濾$ this->誰在你的WHERE語句中。如果你想要一個所有喜歡的列表,你應該刪除它,因爲它限制了你喜歡的$ this->誰做的。 – Dan

回答

0

我希望這是行不通的,因爲缺少逗號,並沒有發生u.bywho發生的分組。這樣做的問題是,它會給你一個被喜歡的人和誰喜歡他們的計數細目。假設一個人永遠不會被人喜歡,計數將永遠是一個。

嘗試在select子句中的u.identiier之後添加逗號,如另一個回覆所述。 如果這不起作用,請嘗試使用u.who進行分組。 如果這不能如預期的那樣工作,請解釋一下你期望的更多。 我猜你可能想從select子句中刪除某些東西。無論select子句中剩下什麼非聚合都需要進行分組。

+0

一個人可以有多個喜歡,例如多個行的標識符具有相同的數字 –

+0

您是否意味着在where子句中設置inv_by.bywho而不是inv_by.identifer? – Wes

+0

如果是這樣,請更改並從select子句中刪除。 – Wes