0

我有一个名为“likes”的表,结构如下:id - 自动生成的号码,bywho - 喜欢某人的用户,标识符 - 喜欢的用户,tip - 喜欢的类别

我正在尝试列出最喜欢的用户(标识符),我的问题是:

我需要生成喜欢的数量作为列表中的计算列...

这是我尝试过的:

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
4

1 回答 1

0

我预计这不起作用,因为缺少逗号并且 u.bywho 没有进行分组。这样做的问题是它会给你一个被喜欢的人和喜欢他们的人的计数细目。假设一个人永远不会被喜欢超过一次,计数将永远是一个。

尝试在另一个回复中提到的 select 子句中的 u.identiier 之后添加逗号。如果这不起作用,请尝试按 u.who 分组。如果这不能按预期工作,请解释一下您的期望。我猜你可能想从 select 子句中删除一些东西。选择子句中剩下的任何非聚合都需要进行分组。

于 2012-08-23T11:17:08.077 回答