一 .
之前有使用过limit,limit的作用就是控制显示查询出来的语句从哪一条显示到哪一条。
它后边跟着另个参数, limit a,b 表示从查询到的记录中,只显示第a行到第b行。
二.
然后,我们查询到的的记录第一条是从0,开始的,就像数组一样,第一个下标是0.这也是我今天才发现的。改了一段别人写的sql语句发现一直查不出明明存在而且符合条件的数据。
就跟,limit的后边的参数有关。我要查的数据只有一条,但是我的代码如下
SELECT bpjd_jcd.Id,
bpjd_jcd.Store_Id,
bpjd_jcd.No ,
khgx_car.Kh_Id,
bpjd_jcd.Jcsj AS Time,
bpjd_jcd.Car_Id,
khgx_car.No AS Plate,
khgx_car.Cartype_Id ,
bpjd_jcd.Sxr AS Contact,
bpjd_jcd.Wxlx_Id,
jczl_wxlx.Name AS Repairtype_Name ,
bpjd_jcd.Djzt AS State,
IFNULL(SUM(bpjd_jcd_fwxm.Money),0) AS LaborCost,
IFNULL(SUM(bpjd_jcd_qtxm.Money),0) AS OtherCost,
IFNULL(TEMP1.PartsCost,0) AS PartsCost
FROM bpjd_jcd
LEFT JOIN khgx_car ON khgx_car.Id=bpjd_jcd.Car_Id
LEFT JOIN jczl_wxlx ON jczl_wxlx.Id=bpjd_jcd.Wxlx_Id
LEFT JOIN bpjd_jcd_fwxm ON bpjd_jcd_fwxm.Jcd_Id=bpjd_jcd.Id
LEFT JOIN bpjd_jcd_qtxm ON bpjd_jcd_qtxm.Jcd_Id=bpjd_jcd.Id
LEFT JOIN (
SELECT Jcd_Id,SUM(Money) as PartsCost FROM ckgl_wxltl WHERE ckgl_wxltl.State=1 GROUP BY Jcd_Id
) AS TEMP1 ON TEMP1.Jcd_Id=bpjd_jcd.Id
WHERE bpjd_jcd.Djzt in ('结算') AND bpjd_jcd.Store_Id=1 AND bpjd_jcd.Jcsj like '2016-04-01%'
GROUP BY bpjd_jcd.Id ORDER BY Time DESC
LIMIT 1,100;
最后一行,limit 1,100 。所以我的数据一直出不来。把它改成 limit 0,100就出来了