åÓÔØ ÐÒÏÃÅÄÕÒÁ ÏÂÈÏÄÁ ÄÅÒÅ×Á:
CREATE PROCEDURE RECURS_GROUPS (
parent integer)
returns (
id integer)
as
BEGIN
IF (EXISTS (SELECT id_group FROM groups WHERE id_group = :parent)) THEN
BEGIN
id = parent;
SUSPEND;
END
FOR SELECT id_group FROM groups WHERE id_parent = :parent
INTO :id
DO BEGIN
FOR SELECT id FROM recurs_groups(:id) INTO :id DO SUSPEND;
END
end
ëÁË ÎÁ FB2 ÌÕÞÛÅ Ó ÎÅÊ ÒÁÂÏÔÁÔØ:
select p.*
from products p
where p.id_group in (select id from recurs_groups(:id_groups))
ÉÌÉ
select p.*
from products p
where exists (select id from recurs_groups(:id_groups) where id=p.id_group)