Olá. Estou com uma dificuldade violenta em fazer duas consulta SQL no postgres. Tenho 3 tabelas tag_group, tag_bag e tags. A tabela tag_bag é uma tabela de relacionamento n-n entre tags e tag_group. Ou seja, apenas casa uma chave de tag_group com uma de tags. Preciso fazer uma 2 consultas da seguinte forma: primeira: selecionar todos elementos de tag_group que possuam EXATAMENTE um grupo fechado de tags (nem + nem menos). segunda: selecionar todos os elementos de tag_group que possuam relacionamentos INTEIRAMENTE contidos em um conjunto de strings de tags que irei passar. as minhas tabelas são: CREATE TABLE tag_group
(
tag_group_id serial NOT NULL,
preference_flag integer,
CONSTRAINT tag_group_pkey PRIMARY KEY (tag_group_id)
)
WITH (
OIDS=FALSE
);
CREATE TABLE tag_bag
(
tag_group_id serial NOT NULL,
tag_id serial NOT NULL,
CONSTRAINT tag_bag_pkey PRIMARY KEY (tag_group_id, tag_id),
CONSTRAINT tag_bag_tag_group_id_fkey FOREIGN KEY (tag_group_id)
REFERENCES client_profile.tag_group (tag_group_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT tag_bag_tag_id_fkey FOREIGN KEY (tag_id)
REFERENCES client_profile.tags (tag_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION
);
CREATE TABLE tags
(
tag_id serial NOT NULL,
language_id serial NOT NULL,
tag character varying(200),
description character(250),
date_of_creation timestamp without time zone,
"owner" integer,
status integer NOT NULL DEFAULT (-1),
CONSTRAINT tags_pkey PRIMARY KEY (tag_id),
);