select count作为计算列?

时间:2012-08-23 10:48:16

标签: mysql sql

我有一个名为“likes”的表格,结构如下: id - 自动生成的数字, bywho - 喜欢某人的用户, 标识符 - 喜欢的用户, 提示 - 类似的类别

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

我需要在列表中生成大量喜欢的计算列...

这是我试过的:

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 个答案:

答案 0 :(得分:0)

我希望这不起作用,因为缺少逗号并且u.bywho没有发生分组。这样做的问题在于它会让您被喜欢的人和喜欢他们的人数细分。假设一个人永远不会被多次看到,那么计数总是一个。

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