根据用户使用groupby或unionall从表中计数两列

时间:2019-03-03 20:00:10

标签: php mysql

我想从一个查询中计算出同一表中的两列。

1- 关注人数

2- 关注人数

我正在使用union和groupby来获取两列的计数,但是只能从查询中获取一列的计数。

我在下面使用的查询:

SELECT follow_attr.username, follow_attr.followerid, follow_attr.followeeid, follow_attr.followercount, follow_attr.followeecount 
 FROM (
    SELECT u.username, dff.followerid AS followerid, dff.followeeid AS followeeid, count(dff.followerid) AS followercount, count(dff.followeeid) AS followeecount
FROM tablename AS dff
LEFT JOIN user AS u ON u.userid = dff.followerid
GROUP BY dff.followerid
UNION ALL
SELECT u.username, dffs.followerid AS followerid, dffs.followeeid AS followeeid, count(dffs.followerid) AS followercount, count(dffs.followeeid) AS followeecount
FROM tablename AS dffs
LEFT JOIN user AS u ON u.userid = dffs.followeeid
GROUP BY dffs.followeeid
   ) AS follow_attr
WHERE follow_attr.username IS NOT NULL
GROUP BY follow_attr.followerid, follow_attr.followeeid
ORDER BY RAND()
LIMIT 0,6

在此查询中,我无法获取Followeecount。

让我知道该程序出了什么问题。

1 个答案:

答案 0 :(得分:0)

执行此操作 从表名中选择COUNT(关注者数量)AS f_count,COUNT(关注者数量)AS fe_count