J'ai une vue qui représente les relations entre les éditeurs et la littérature (livres, magazines, etc.).Meilleure façon d'aller chercher le parent par quelques entrées
Je suis en train de chercher id éditeur qui publie un livre X et Y. Publication
Ainsi, par exemple pour trouver l'éditeur/s qui publie Book#Clarissa
et Publication#On the Nature of Things
- le résultat est PUBLISHER_ID 1,5
(mais pas 4
).
je le ferai par jointure interne la même vue:
select *
from relations publication
inner join relations books on publication.publisher_id = books.publisher_id
where books.publication_type='Book'
and books.extended_field_3='Clarissa'
and publication.publication_type='Publication'
and publication.extended_field_4='On the Nature of Things'
Les choses se compliquent quand je dois chercher par livre, Publication, Magazine (3 sur les jointures internes une vue complexe).
Y a-t-il un meilleur moyen? (Spécifique Oracle peut également aider)
drop table relations;
CREATE TABLE relations
(
publisher_id int,
publication_id varchar(255),
publication_type varchar(255),
extended_field_1 varchar(255),
extended_field_2 varchar(255),
extended_field_3 varchar(255),
extended_field_4 varchar(255)
);
insert into relations values(1,A,'Book','','','Clarissa','');
insert into relations values(1,B,'Publication','','','','On the Nature of Things');
insert into relations values(1,C,'Book','','','Frankenstein','');
insert into relations values(3,D,'Book','','','','');
insert into relations values(3,E,'Publication','','','','A Paradoxical Ode');
insert into relations values(4,F,'Magazine','Time','','','');
insert into relations values(4,G,'Book','','','Clarissa','');
insert into relations values(4,H,'Publication','','','','Human Chemistry');
insert into relations values(4,I,'Book','','','The Woman in White','');
insert into relations values(5,K,'Book','','','Clarissa','');
insert into relations values(5,L,'Publication','','','','On the Nature of Things');
Utilisez-vous Oracle ou SQL Server? La syntaxe suggère SQL Server. –
Oracle, la syntaxe est juste pour l'exemple Merci. – user648026