MySql - 如何计算group by查询的count(*)?

时间:2018-01-21 18:33:34

标签: php mysql sql laravel

我有查询:

select sellers.* from sellers
    left join locations
    on locations.seller_id = sellers.id
    group by sellers.id
    limit 0, 10;

假设第一个查询给出了10个带有分组的结果,15个没有分组的结果。

现在我想计算分页的“所有结果数”。

select count(*) from ...

我试过了:

select count(*) from sellers
    left join locations
    on locations.seller_id = sellers.id
    //group by sellers.id;

1.WITH“group by sellers.id”我得到10个值为1的结果(它应该是值为10的一个结果)

2.WITHout“group by sellers.id”我得到一个值为15的结果(它应该是一个值为10的结果)

任何想法?

3 个答案:

答案 0 :(得分:1)

这应该适合你:

选择count(*)from(选择sellers.id从卖家离开join.seller_id = sellers.id上的加入位置)作为;

答案 1 :(得分:1)

您可以将SELECT查询放入SELECT COUNT(*)查询中,这样:

SELECT count(*) FROM (select sellers.* from sellers
    left join locations
    on locations.seller_id = sellers.id
    group by sellers.id) sellers;

答案 2 :(得分:0)

我不赞成您的查询,但您只想要卖家的数量。最简单的方法是:

select count(*)
from sellers;