//方案一 SELECT slno, item, price FROM ( SELECT slno, item, price, @t := @t + price total FROM table1 CROSS JOIN (SELECT @t := 0) i ORDER BY slno ) q WHERE total <= 10000 //方案二 SELECT slno, item, price FROM ( SELECT slno, item, price, ( SELECT SUM(price) FROM table1 WHERE slno <= t.slno ) total FROM table1 t ) q WHERE total <= 10000 ORDER BY slno
三、left join查找和展示count(*)为0的记录
1 2 3 4 5 6 7 8 9
SELECT A.policyCode, IFNULL(B.ZH,0) FROM (select policyCode from t_warningPolicy) AS A LEFT JOIN ( SELECT policyCode,COUNT(*) as ZH FROM t_warning GROUP BY policyCode ) AS B ON A.policyCode=B.policyCode