mysql union 计数_MySql:通过计数选择Union或Joins

我需要一种方法让页面管理员按照用户在该特定页面上发布的帖子总数来查看其页面的成员。帖子存储在不同的表格中,如民意调查,下载,wiki等(如15个表格)。每个人都有id,user_id,page_id,标题,内容等的结构。列出页面所有用户的表称为'收藏夹'。它的结构就是id,user_id,page_id,date。

我目前有一个查询,将所有“内容表”联合起来,让特定用户在网站上显示他们的所有帖子,查看它在哪个页面上,我可以很容易地使用WHERE page_id = $ PAGE_ID)。我尝试使用该代码来做我想在主持人区做的事情。正如我所提到的,在主持人区域,我需要根据其总帖子数DESC对用户列表进行排序。

我有这个代码,但它不工作。

$getfans = mysql_query("SELECT DISTINCT user_id, ((SELECT id FROM wiki WHERE wiki.page_id = $page_id AND wiki.user_id = favorites.user_id)

UNION ALL

(SELECT id FROM downloads WHERE downloads.page_id = $page_id AND downloads.user_id = favorites.user_id)

UNION ALL

(SELECT id FROM polls WHERE polls.page_id = $page_id AND polls.user_id = favorites.user_id)) AS posts

FROM favorites WHERE favorites.page_id = $page_id AND favorites.status = 0 ORDER BY posts DESC", $conn);我尝试过其他方法,也没有工作,但这个对我来说最合乎逻辑,所以这是我要展示的唯一方法

请帮忙。谢谢。

另外...

这也许是朝着正确方向迈出的一步

$getfans = mysql_query("SELECT DISTINCT user_id, (SELECT COUNT(id)

FROM polls WHERE page_id = $page_id AND user_id = favorites.user_id)

AS posts FROM favorites WHERE favorites.page_id = $page_id AND

favorites.status = 0 ORDER BY posts DESC", $conn);

当我回复$帖子时,它给了我该用户对该页面的民意调查的正确计数。

但是当我试图做多个表时,它只返回一个用户。

例:

$getfans = mysql_query("SELECT DISTINCT user_id, SUM((SELECT COUNT(id)

FROM polls WHERE page_id = $page_id AND user_id =

favorites.user_id)+(SELECT COUNT(id) FROM wiki WHERE page_id =

$page_id AND user_id = favorites.user_id)) AS posts FROM favorites

WHERE favorites.page_id = $page_id AND favorites.status = 0 ORDER BY

posts DESC", $conn);

我找到了解决方案

如果好奇,请在下面阅读我的帖子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值