Bonjour à tous,
N'étant pas un expert en SQL, j'ai simplement besoin d'aide pour confirmer la construction d'une requête :
Alors voila, j'ai deux requêtes distinctes sur la même table suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT DISTINCT Table1.Table1Id FROM Table1 INNER JOIN Table2 ON Table1.Table1Id = Table2.Table1id INNER JOIN Table3 ON Table3.Table3Id = Table2.Table3id AND Table3.code = 'A04024'J'aimerai unir mes deux résultats en un seul, pour cela je peux utiliser UNION :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT DISTINCT Table1.Table1Id FROM Table1 INNER JOIN Table4 ON Table1.Table1Id = Table4.grd_Table1Id INNER JOIN Table5 ON Table5.Table5Id = Table4.Table5Id WHERE Table5.num LIKE '04%'
Enfin j'aimerai obtenir le meme résultat mais sans utiliser la clause UNION, alors j'utilise le left outer join comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT DISTINCT Table1.Table1Id FROM Table1 INNER JOIN Table2 ON Table1.Table1Id = Table2.Table1id INNER JOIN Table3 ON Table3.Table3Id = Table2.Table3id AND Table3.code = 'A04024' UNION SELECT DISTINCT Table1.Table1Id FROM Table1 INNER JOIN Table4 ON Table1.Table1Id = Table4.grd_Table1Id INNER JOIN Table5 ON Table5.Table5Id = Table4.Table5Id WHERE Table5.num LIKE '04%'
Selon vous est-ce la bonne solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT DISTINCT Table1.Table1Id, num FROM Table1 LEFT OUTER JOIN Table2 ON Table1.Table1Id = Table2.Table1id LEFT OUTER JOIN Table3 ON Table3.Table3Id = Table2.Table3id LEFT OUTER JOIN Table4 ON Table1.Table1Id = Table4.grd_Table1Id LEFT OUTER JOIN Table5 ON Table5.Table5Id = Table4.Table5Id WHERE Table3.code = 'A04024' OR Table5.num LIKE '04%'
Merci d'avance pour votre aide
Partager