Php 获取sql中分组依据的行数
我的sql查询正在从sql表中获取数据Php 获取sql中分组依据的行数,php,sql,join,group-by,left-join,Php,Sql,Join,Group By,Left Join,我的sql查询正在从sql表中获取数据 SELECT * FROM `bookings` bo LEFT JOIN routes ro ON bo.iRouteId = ro.iRouteId LEFT JOIN buses bu ON bo.iBusId = bu.iBusId WHERE eBookingBy = 'User' AND iUserId = '2' ORDER BY bo.iBookingId DESC 现在这将像这样返回给我o/p 这意味着它返回两个具有相同预订i
SELECT * FROM `bookings` bo
LEFT JOIN routes ro ON bo.iRouteId = ro.iRouteId
LEFT JOIN buses bu ON bo.iBusId = bu.iBusId
WHERE eBookingBy = 'User' AND iUserId = '2'
ORDER BY bo.iBookingId DESC
现在这将像这样返回给我o/p
这意味着它返回两个具有相同预订id的数据,现在我要做的是GROUP BY bo.vbookinno
Soo它将只返回一个数据
现在我需要的是,我需要一个计数,有多少行被分组
例如,如果我在上面的查询中使用group byvBookingNo
,它将只向我输出一个结果。但它也会返回一个按分组的行数
所以这里它将返回o/p计数2
谢谢。您需要计数()
这意味着它返回两个具有相同预订id的数据,现在我要做的是GROUP BY bo.vBookingNo Soo它将只返回一个数据。你能澄清这一部分吗?使用
count(*)
。当我没有使用GROUP_BY时,它会根据where条件返回两个数据,但如果我使用GROUP BY,它肯定会返回一个数据。所以我需要的只是按数据对该组进行计数我的坏,我读错了,但Zaynul的答案就是你所需要的。它真的很棒。我搜索了很多次,尝试了很多次,但没有考虑count()。因为我假设count()将生成所有数据的count。非常好:)
SELECT vBookingNo, count(*) FROM `bookings` bo
LEFT JOIN routes ro ON bo.iRouteId = ro.iRouteId
LEFT JOIN buses bu ON bo.iBusId = bu.iBusId
WHERE eBookingBy = 'User' AND iUserId = '2'
group by vBookingNo