select a.value as a,b.value as b1,c11.value as c11 from table_a as a
-- join b
left outer join table_b as b on b.a_pk = a.pk
-- join c avec value = a_1
inner join table_c as c11 on c11.b_pk = b.pk and c11.value = 'a_1'
a b1 c11
X a a_1
select a.value as a,b.value as b1,c11.value as c11 from table_a as a
-- join b
left outer join table_b as b
-- join c avec value = a_1
inner join table_c as c11 on c11.b_pk = b.pk and c11.value = 'a_1'
on b.a_pk = a.pk
a b1 c11
X a a_1
Y
DROP TABLE table_b;
DROP TABLE table_a;
--Equivalent CompositeNetwork
CREATE TABLE table_a
(
pk bigint NOT NULL,
value character varying(1024),
CONSTRAINT table_a_pkey PRIMARY KEY (pk)
);
--Equivalent TerminationPoint
CREATE TABLE table_b
(
pk bigint NOT NULL,
value character varying(1024),
a_pk bigint,
CONSTRAINT constraint_a_pk FOREIGN KEY (a_pk) REFERENCES public.table_a (pk),
CONSTRAINT table_b_pkey PRIMARY KEY (pk)
);
--Equivalent Characteristic
CREATE TABLE table_c
(
pk bigint NOT NULL,
value character varying(1024),
b_pk bigint,
CONSTRAINT constraint_b_pk FOREIGN KEY (b_pk) REFERENCES public.table_b (pk),
CONSTRAINT table_c_pkey PRIMARY KEY (pk)
);
insert into table_a values (1,'X');
insert into table_a values (2,'Y');
insert into table_b values (1,'a',1);
insert into table_b values (2,'b',1);
insert into table_b values (3,'c',1);
insert into table_c values (1,'a_1',1);
insert into table_c values (2,'a_2',1);
insert into table_c values (3,'b_1',2);