Bonjour,
est-il possible d'optimiser cette requête en remplaçant les "UNION" car d'après cet article http://sql.developpez.com/optimiser/ ( paragraphe 9: "Transformations usuelles" ) c'est préférable, mais là je suis dans le brouillard pour la syntaxe.
Je travaille avec MS SERVER Express 2005.
creation des tables + insertion des données:
Requete à optimiser:
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 USE [essai_requete] CREATE TABLE [dbo].[T_id] ([id] [int] NOT NULL UNIQUE) CREATE TABLE [dbo].[T_Table1] ([idT1] [int] NOT NULL UNIQUE) CREATE TABLE [dbo].[T_Table2] ([idT2] [int] NOT NULL UNIQUE) CREATE TABLE [dbo].[T_Table3] ([idT3] [int] NOT NULL UNIQUE) CREATE TABLE [dbo].[T_Table4] ([idT4] [int] NOT NULL UNIQUE) go insert into T_id values(1) insert into T_id values(2) insert into T_id values(3) insert into T_id values(4) insert into T_id values(6) insert into T_id values(7) insert into T_id values(8) insert into T_id values(9) insert into T_Table1 values(4) insert into T_Table1 values(7) insert into T_Table1 values(8) insert into T_Table2 values(5) insert into T_Table2 values(6) insert into T_Table3 values(2) insert into T_Table3 values(3) insert into T_Table3 values(4) insert into T_Table3 values(5) insert into T_Table4 values(1) insert into T_Table4 values(2) insert into T_Table4 values(6) go
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT id FROM T_id JOIN ( SELECT idt1 FROM T_table1 UNION SELECT idt2 FROM T_table2) T1_2 ON T_id.id = T1_2.idt1 JOIN ( SELECT idt3 FROM T_table3 UNION SELECT idt4 FROM T_table4) T3_4 ON T_id.id = T3_4.idt3
Partager