Mysqli连接查询返回错误的COUNT?

时间:2019-02-06 10:12:25

标签: php mysql mysqli group-by count

我是php新手。我的联接查询有问题。我想从联接查询中进行分页计数,但计数仅返回1.我不知道如何解决此问题。有人可以帮助我如何正确计算联接中的计数查询。

我的加入查询如下:-

SELECT COUNT(l.id) as total
     , l.*
     , ls.lead_id
     , ls.lead_status
     , ls.date 
  from lead_status as ls 
  join leads as l 
    on l.id = ls.lead_id 
   and l.status = ls.lead_status 
WHERE is_deleted = 0 
   and ls.lead_status = 1 
   and l.status = 1 
 group 
    by id 
 order 
    by id 
 LIMIT 0, 20

如果我运行此查询,那么我返回这样的结果...。

enter image description here

并且我通过l.id在没有GROUP的情况下运行查询,因此我的计数很完美,但是我从数据库中仅获得一条记录。

请参见

enter image description here

leads和lead_status之间的关系是...在Leads表ID和Lead_status表Lead_id中。我想计算Leads表ID。

我想要记录的总行数。分页计数和显​​示在我的视图页面上的记录。

我想像下面的图片一样加入查询结果并获得总行数并获取所有数据。

enter image description here

3 个答案:

答案 0 :(得分:2)

如果您希望分页的总线索数,请运行以下查询

SELECT l.*, ls.lead_id, ls.lead_status, ls.date 
FROM leads as l JOIN lead_status as ls ON l.id = ls.lead_id
WHERE l.is_deleted = 0
and l.status = 1
and ls.lead_status = 1

此查询返回表中的所有潜在顾客,现在使用php的mysqli_num_rows()或sizeof()函数对记录数进行计数。

答案 1 :(得分:0)

存在id的问题,您可以联接表,并且可能还有另一个具有id列的表。

因此,请定义您必须根据哪个ID对结果进行分组。

通过l.idls.id之类的方式更改组语句和顺序。

答案 2 :(得分:0)

您正在使用Group By子句,因此它将计算分组的ID。由于id是唯一键,因此每一行的结果均为1。