php - 连接后计算表中的行数

标签 php mysql sql

我有一个查询,通过连接从 4 个表中选择数据,我还想计算第五个表中包含匹配外键的行数。

这就是我当前查询的样子,但它不起作用

"SELECT 
                     ph.pheed_id,ph.user_id,ph.datetime,ph.repheeds,
                     ph.pheed,fav.id,fav.P_id,fav.datetime as stamp,
                     u.username,ava.avatar_small
                     COUNT(pheed_comments.comment_id) as comments
                     FROM favourite_pheeds fav
                     INNER JOIN pheeds ph ON ph.pheed_id=fav.P_id
                     INNER JOIN users u ON u.id=ph.user_id
                     INNER JOIN profiles pr ON pr.user_id=ph.user_id
                     LEFT JOIN user_avatars ava ON ava.avatar_id=pr.avatar
                     ORDER BY stamp DESC
                     LIMIT $offset,$limit";

如何计算包含匹配外键的第五个表中的行数。

最佳答案

select ph.pheed_id,
    ph.user_id,
    ph.datetime,
    ph.repheeds,
    ph.pheed,
    fav.id,
    fav.P_id,
    fav.datetime as stamp,
    u.username,
    ava.avatar_small,
    coalesce(pcc.Count, 0) as comments_count
from favourite_pheeds fav
inner join pheeds ph on ph.pheed_id = fav.P_id
inner join users u on u.id = ph.user_id
inner join profiles pr on pr.user_id = ph.user_id
left join user_avatars ava on ava.avatar_id = pr.avatar
left outer join (
    select pheed_id, count(*) as Count
    from pheed_comments
    group by pheed_id --took a guess at the column name here
) pcc on ph.pheed_id = pcc.pheed_id
order by stamp desc 
LIMIT $offset, $limit

关于php - 连接后计算表中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794338/

相关文章:

mysql - 为什么 mysql 案例条件不能正常工作

mysql - 文件排序用于查询,我不明白为什么 (mysql 5)

mysql - 使用 Pomelo Entity Framework Core 查询 MySQL 数据库时出现问题

sql - 插入语句的 SQL 命令中缺少逗号

php - 表的列与当前 session 匹配

php - 我如何修改此 MySQL 查询来查找排名?

mysql - 索引是否创建新表?

php - 使用 PHP 将 ASCII 字符转换为十进制等效字符

PHP:函数内部的变量在函数外部使用它?

php - 如何为表中的多行设置相同的id