Optimisation d'une requête
Bonjour,
J'aurai besoin d'aide pour l'optimisation d'une requête.
Table A
Code:
1 2 3 4 5 6 7 8 9
| IdA | IdB
---------
1 | c2
2 | c1
3 | f3
4 | c4
5 | e4
6 | c2
7 | d4 |
Table B
Code:
1 2 3 4 5 6 7 8 9
| IdB | a | b
------------
c2 | 1 | 2
c1 | 1 | 4
f3 | 1 | 6
c4 | 2 | 3
e4 | 6 | 5
c2 | 1 | 3
d4 | 4 | 4 |
Comme résultat je souhaiterai donc :
Code:
1 2 3 4
| IdA | IdB | a | b
------------
2 | c1 | 1 | 4
4 | c4 | 2 | 3 |
Voici ma requête :
Code:
1 2 3 4 5 6 7 8 9 10
| SELECT *
FROM TableA A
JOIN TableB B
ON A.IdB = B.IdB
AND IdB like 'c%'
WHERE IdB not in (Select IdB
FROM TableB
WHERE a = '1'
AND b in ('2','3','5')) |
Or je manipule des millions d'enregistrements et je souhaiterai optimiser tout cela.
J'ai regardé le cours : http://sqlpro.developpez.com/cours/optimiser/#L9
Et la règle 10 me montre bien comment optimiser le "not in" mais j'avoue ne pas bien saisir le "LEFT OUTER JOIN".
Même après ce cours http://sqlpro.developpez.com/cours/s...ntures/#LIII-C j'ai quelques doutes quand à la construction de ma requête.
En effet je bloque avec la condition "AND IdB like 'c%'", comment dois-je agencer tout ça ?
Merci