
正文
PHP明细之间的关联和having进行分组,不推荐这样做,只是做为偷懒的办法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
-- 只求和wrt的数据,其它数据保持不变!
SELECT A.return_id,A.relevant_id,A.order_id,A.deliver_order_id,A.product_id,A.returnNum,A.deliverNum,A.rdbData,
SUM(wrt.quantity)wrtNum,GROUP_CONCAT(DISTINCT wrt.container_id) useContainer,GROUP_CONCAT(DISTINCT rdb.relevant_id) otherRelevantId,
ww.shortname returnHouse,ww1.shortname deliverHouse,ww2.shortname deliverToHouse,ww3.shortname from_warehouse,ww4.shortname to_warehouse
FROM
(
SELECT
rdp.return_id,
rdp.order_id,
rdp.product_id,
rdp.warehouse_id returnHouse,
rdp.quantity returnNum,
dop.quantity deliverNum,
DATE( rdp.date_added ) rdbData,
dop.deliver_order_id,
doo.do_warehouse_id deliverToHouse,
doo.warehouse_id deliverHouse,
doo.relevant_id
FROM
oc_return_deliver_product rdp -- 商品级别
INNER JOIN deliver_order_product dop ON rdp.order_id=dop.order_id AND rdp.product_id=dop.product_id -- 商品级别
INNER JOIN deliver_order doo ON dop.deliver_order_id=doo.deliver_order_id WHERE
DATE(rdp.date_added) BETWEEN '2018-11-08'
AND date_add( CURRENT_DATE (), INTERVAL 0 DAY)
AND rdp.warehouse_id = 22
AND rdp.confirmed>0
AND rdp.STATUS=1
AND doo.relevant_id >0
) A -- 商品级别
LEFT JOIN relevant_deliver_binding rdb ON A.relevant_id=rdb.relevant_id AND A.deliver_order_id=rdb.deliver_order_id -- 分拣级别
LEFT JOIN warehouse_requisition_temporary wrt ON rdb.relevant_id=wrt.relevant_id AND A.product_id=wrt.product_id AND wrt.relevant_status_id=4 -- 商品级别
LEFT JOIN warehouse_requisition wr ON wrt.relevant_id=wr.relevant_id
LEFT JOIN warehouse ww ON A.returnHouse=ww.warehouse_id
LEFT JOIN warehouse ww1 ON A.deliverHouse=ww1.warehouse_id
LEFT JOIN warehouse ww2 ON A.deliverToHouse=ww2.warehouse_id
LEFT JOIN warehouse ww3 ON wr.from_warehouse=ww3.warehouse_id
LEFT JOIN warehouse ww4 ON wr.to_warehouse=ww4.warehouse_id
GROUP BY wrt.product_id -- 计算wrt基础数据
HAVING returnHouse != from_warehouse -- 分组之后做为条件查询
order by product_id DESC
园子里的草长的都快比人高了,太懒也不想动,好久都没有整理过了,今天先锄锄草,过二天再浇浇水,开始园子的生活,再种点菜什么的,这样看起来像个码农的生活,不至于那么无聊,哈哈,听起来不错哦,给小伙伴分享一些小技巧,同时也让自个再学一遍,PHP明细之间怎么做的关联连动having进行分组,看表结构就知道怎么玩了。如果能用UNION做为条件进行比较查询那么速度会比上述代码更快,相对的连接的表将会更多,但是即便连的数据表多出二到三倍,依然UNION运行速度快,百试不爽!目标都是一样的,只是方式不同,看心情怎么玩了,得到基础后,再用PHP重组数组变成想要的格式。150个字应该够了........






