我是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
如果我运行此查询,那么我返回这样的结果...。
并且我通过l.id在没有GROUP的情况下运行查询,因此我的计数很完美,但是我从数据库中仅获得一条记录。
请参见
leads和lead_status之间的关系是...在Leads表ID和Lead_status表Lead_id中。我想计算Leads表ID。
我想要记录的总行数。分页计数和显示在我的视图页面上的记录。
我想像下面的图片一样加入查询结果并获得总行数并获取所有数据。
答案 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.id
或ls.id
之类的方式更改组语句和顺序。
答案 2 :(得分:0)
您正在使用Group By子句,因此它将计算分组的ID。由于id是唯一键,因此每一行的结果均为1。