Bonjour,

Soit les deux tables suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
table E		NAME		REF_F
		E1		F1
		E2		F1
 
table F		FLIGHT		ROUTE
		F1		ABETI
		F2		GOL
		F3		RAMPAR
je souhaite créer une vue afin d'obtenir les tuples suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
vue		NAME		FLIGHT		ROUTE
		E1		F1		ABETI
		E2		F1		ABETI
				F2		GOL
				F3		RAMPAR
Ce qui me pose problème c'est bien entendu le champ NAME qui peut être nul.

J'ai tant bien que mal trouvé cette requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
select e.name,f.flight,f.route from e,f 
where e.ref_f=f.flight 
union 
select '',flight,route  from f
where (flight,route) not in 
	(select f.flight,f.route from e,f 
	 where e.ref_f=f.name
        );
mais 'select f.flight,f.route from e,f where e.ref_f=f.name' va être évalué deux fois, ce qui ne me parait pas performant.
Quelqu'un voit t'il une autre façon d'écrire cette requête ?

Merci