首页 文章

3 sql内连接表,现在如何计算它们中的总行数

提问于
浏览
1

这里是查询,我有内部加入3个表,现在我期待计算结果中的所有行,即78通过执行查询我的管理员,我不想要表的结果,我只想在wchich中的1行写的东西是78,和我们一样

SELECT count (*) FROM test_table

下面是3个内连接表的查询

SELECT 
mybb_users.uid,
mybb_users.username,
mybb_users.avatar,
mybb_posts.fid,
mybb_posts.uid,
mybb_posts.dateline,
mybb_posts.tid,
mybb_posts.subject,
mybb_forums.parentlist,
mybb_forums.fid
FROM mybb_forums
    INNER JOIN mybb_posts ON mybb_forums.fid = mybb_posts.fid
    INNER JOIN mybb_users ON mybb_posts.uid = mybb_users.uid
    WHERE mybb_forums.parentlist LIKE '%58%'
    GROUP BY mybb_posts.tid
    ORDER BY mybb_posts.dateline DESC

现在如何计算总行数?

EDITED

SELECT count( mybb_users.uid ) AS totalOfRows
FROM (

SELECT mybb_users.uid, mybb_users.username, mybb_users.avatar, mybb_posts.fid, mybb_posts.uid AS uidPost, mybb_posts.dateline, mybb_posts.tid, mybb_posts.subject, mybb_forums.parentlist, mybb_forums.fid AS fidForum
FROM mybb_forums
INNER JOIN mybb_posts ON mybb_forums.fid = mybb_posts.fid
INNER JOIN mybb_users ON mybb_posts.uid = mybb_users.uid
WHERE mybb_forums.parentlist LIKE '%58%'
GROUP BY mybb_posts.tid
)T

错误::#1054 - '字段列表'中的未知列'mybb_users.uid'

1 回答

  • 1

    好吧,如果您不想要结果,为什么要显示这些字段?选择返回一个表,因此应用计数:

    SELECT 
    count(*)
    FROM mybb_forums
        INNER JOIN mybb_posts ON mybb_forums.fid = mybb_posts.fid
        INNER JOIN mybb_users ON mybb_posts.uid = mybb_users.uid
        WHERE mybb_forums.parentlist LIKE '%58%'
        GROUP BY mybb_posts.tid
    

    此外,您通过帖子进行分组,因此,无需订购

    编辑:我认为我发布的查询应该有用,无论如何,如果不是,这肯定应该工作:

    SELECT sum(Total) AS totalOfRows 
    FROM ( 
    
    SELECT 1 as Total 
    FROM mybb_forums 
    INNER JOIN mybb_posts ON mybb_forums.fid = mybb_posts.fid 
    INNER JOIN mybb_users ON mybb_posts.uid = mybb_users.uid 
    WHERE mybb_forums.parentlist LIKE '%58%' 
    GROUP BY mybb_posts.tid 
    )T
    

相关问题