J'ai une base de données avec trois tables: userid_tbl, need_tbl, have_tblmatch circulaire
create table userid_tbl
(user_id varchar2(15) not null primary key);
create table need_tbl
(user_id varchar2(15) not null,
have_item varchar2(100) not null,
foreign key (user_id) references userid_tbl (user_id)
);
create table have_tbl
(user_id varchar2(15) not null,
have_item varchar2(100) not null,
foreign key (user_id) references userid_tbl (user_id)
);
Chaque utilisateur peut créer un nombre illimité d'enregistrements de besoins ou des services qu'ils peuvent fournir aux autres dans la base de données. Les articles proviennent d'une liste prédéterminée.
Après avoir fait une jointure sur la nécessité et ont table, j'avons identifié les besoins et les besoins, et mis au rebut les demandes qui ne peuvent pas être remplies par un utilisateur dans une vue qui ressemble à ceci:
Item: Need: Have:
1 Bob George
2 George Herbie
3 Herbie Bob
4 Larry Wally
5 Wally Larry
6 John George
J'essaye maintenant d'écrire une requête où je peux calculer le nombre de permutations de chaque utilisateur ayant leurs besoins demandés remplis. Par exemple, dans l'exemple ci-dessus, Bob, George et Herbie peuvent satisfaire ensemble les besoins de chacun, tout comme Larry et Wally, mais John ne le peut pas, donc le nombre total serait de 2.
J'ai d'abord commencé à le faire avec une boucle, mais il doit y avoir une façon plus simple et moins gourmande en ressources de le faire avec une seule requête.
Cherchez-vous le nombre de groupes interreliés? Ce n'est pas clair quel est le résultat que vous attendez. –