分层树结构 - 删除独立行

时间:2013-07-05 09:06:08

标签: php sql tree postgresql-9.2

我有两张表格,结构如下:

CREATE TABLE products
(
  id integer NOT NULL,
  name text,
  CONSTRAINT pk_first PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

CREATE TABLE events
(
  id integer NOT NULL,
  parent integer,
  CONSTRAINT pk_second PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

INSERT INTO events (
  id, parent)
  VALUES (1, 1), (2, 1), (3, 1), (4, 2), (5, 3), (6, 6), (7, 6); 

INSERT INTO products(
            id, name)
    VALUES (1,'A'), (2,'B'),(3,'C'),(4,'D');

现在,我必须从事件表中删除与产品无关的所有行。通过连接我的意思是来自事件的Id和来自产品的id之间的连接,但是没有外键,并且在事件表中可以是与产品中的行不相等的行。

我无法删除任何依赖于通过parent_id连接的行。

示例:

从products表中检查id为3的行我无法在表事件中删除id为3的行,并且我无法删除ID为1,2,4和5的任何行 - >因为它们都依赖于3到parent_id。但我可以删除id为6和7的行 - 没有依赖项。

有什么想法吗?

0 个答案:

没有答案