我有两个不同的表用户和 invoice_order
用户表 -
+-------+-------+-----------+
| pid | fname | iid |
+=======+=======+===========+
| sk001 | aa | null |
+-------+-------+-----------+
| sk002 | ss | ssk001 |
+-------+-------+-----------+
| sk003 | dd | sk001 |
+-------+-------+-----------+
| sk004 | ff | sk002 |
+-------+-------+-----------+
| sk005 | gg | sk002 |
+-------+-------+-----------+
| sk006 | hh | sk005 |
+-------+-------+-----------+
| sk007 | jj | sk006 |
+-------+-------+-----------+
| sk008 | kk | sk006 |
+-------+-------+-----------+
| sk009 | ll | sk004 |
+-------+-------+-----------+
| sk010 | mm | sk005 |
+-------+-------+-----------+
Here `pid` is personal id of the user and `iid` is the parent_id of the users
invoice_order 表 -
+-------+-------+-----------+--------+
| pid | fname | iid |order_to|
+=======+=======+===========+========+
| sk001 | aa | null | 100 |
+-------+-------+-----------+--------+
| sk002 | ss | ssk001 | 400 |
+-------+-------+-----------+--------+
| sk002 | dd | sk001 | 225 |
+-------+-------+-----------+--------+
| sk004 | ff | sk002 | 50 |
+-------+-------+-----------+--------+
| sk005 | gg | sk002 | 59 |
+-------+-------+-----------+--------+
| sk006 | hh | sk005 | 77 |
+-------+-------+-----------+--------+
| sk007 | jj | sk006 | 89 |
+-------+-------+-----------+--------+
| sk004 | ff | sk002 | 87 |
+-------+-------+-----------+--------+
| sk009 | ll | sk004 | 45 |
+-------+-------+-----------+--------+
| sk010 | mm | sk005 | 56 |
+-------+-------+-----------+--------+
我正在使用过程team_total_test
中使用递归查询来计算单个用户的团队总数
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `team_total_test`(IN `userid` VARCHAR(200))
NO SQL
BEGIN
CREATE TABLE tt_3 (pid VARCHAR(100),iid VARCHAR(100),total INT(250));
INSERT INTO tt_3 SELECT pid,
iid,0
from (SELECT pid,iid from users
order by pid, iid) users,
(SELECT @pv := userid) initialisation
where find_in_set(iid, @pv) > 0
and length(@pv := concat(@pv, ',', pid)) order by iid ASC;
UPDATE tt_3
SET total=(SELECT (SUM(order_total_before_tax))/2 FROM invoice_order WHERE tt_3.pid=invoice_order.pid
AND MONTH(order_date)=MONTH(NOW()) AND YEAR(order_date)=YEAR(NOW()) );
SELECT sum(total) as total_pv
from tt_3 ;
SELECT COUNT(pid) as counting FROM tt_3;
DROP TABLE tt_3 ;
END$$
DELIMITER ;
问题是我在 localhost 中得到了正确的输出,而不是在服务器中 来自 localhost 的
输出是在服务器中
的输出