0
所以,這裏是返回給定類別及其子類別的產品的函數,它是一個3級樹,函數很好,但是當我運行它,它說0行返回的任何想法Plpgsql:非遞歸類別樹函數不返回任何行:(
編輯:。?。PARENTS1和PARENTS2應該是父類的兒童陣列$ 1 PARENTS1孩子,和所有PARENTS1節點PARENTS2兒童
CREATE OR REPLACE FUNCTION ecommerce.select_products_by_category(par bigint)
RETURNS SETOF ecommerce.product AS
$BODY$
declare
result ecommerce.product;
parents bigint[];
parents2 bigint[];
i int;
begin
parents := array(
select category_id from ecommerce.category where parent_id = par
);
return query select * from ecommerce.product where category_id = par;
for i in 1..array_upper(parents,1)
loop
return query select * from ecommerce.product where category_id = parents[i];
raise notice 'p %',parents[i];
end loop;
for i in 1..array_upper(parents,1)
loop
parents2 := array(
select category_id from ecommerce.category where parent_id = parents[i]
);
end loop;
for i in 1..array_upper(parents2,1)
loop
return query select * from ecommerce.product where category_id = parents2[i];
raise notice 'p2 %',parents2[i];
end loop;
--return query theset;
end ; $BODY$
,這是我如何運行它
SELECT * From ecommerce.select_products_by_category(
1
);
爲什麼AREN」你只需使用遞歸公用表表達式? http://www.postgresql.org/docs/current/static/queries-with.html –