Je ne voudrais me faire le gardien de l’orthodoxie SQL mais c’est un peu une horreur ta requête.
On n’évites au maximum de faire des SELECT dans la clause SELECT:
SELECT T.* (SELECT * FROM T1 WHERE T1.a=T.a) , (SELECT * FROM T2 WHERE T2.b=T.B ) FROM T -->argl !
On fait
SELECT T.,T1.,T2.*
FROM T
WHERE T1.a=T.a and T2.b=T.b
ou mieux:
SELECT T.,T1.,T2.*
FROM T inner join T1
on T1.a=T.a
inner join T2
on T2.b=T.b
Les sous SELECT c’est pour les IN, les EXISTS ou même pour créer une pseudo table dans la clause FROM. Mais jamais dans la clause SELECT, sauf exceptionnellement pour recréer une constante, mais pas pour faire une jointure !